监测指定路径下的文件创建活动

头文件

#ifndef MYFSO_H #define MYFSO_H

// INCLUDES #include <e32base.h> // for CActive

// FORWARD DECLARATIONS class RFs;

// CLASS DECLARATION

/** *  CMyFSO  container control class. *  */ class CMyFSO : public CActive     {     public: // public interface         class MObserver             {         public:             virtual void OnChangeL(TInt aError,const TDesC& aFileName)=0;             };

    public: // constructor and destructor         static CMyFSO* NewL(MObserver& aObserver);         ~CMyFSO();   void  SetWatchDir(const TDesC& aDir); // 设置检测的文件路径

    public: // new methods         void NotifyAllChanges();

    protected: // from CActive         void DoCancel();         void RunL();

    private: // constructors         CMyFSO(MObserver& aObserver);         void ConstructL();

    private: // member variables         MObserver& iObserver;         RFs& iFs;   TFileName iWatchDir;     };

#endif

// End of File

源文件:

// INCLUDE FILES #include <f32file.h> #include <coemain.h> #include <pathinfo.h>

#include "MyFSO.h"

 

// ================= MEMBER FUNCTIONS =======================

CMyFSO* CMyFSO::NewL(MObserver& aObserver)     {     CMyFSO* myFso = new(ELeave) CMyFSO(aObserver);     CleanupStack::PushL(myFso);     myFso->ConstructL();     CleanupStack::Pop();     return myFso;     }

CMyFSO::~CMyFSO()     {     Cancel();     }

void CMyFSO::NotifyAllChanges()     {     Cancel();     //iFs.NotifyChange(ENotifyAll, iStatus);  //iWatchDir=PathInfo::MemoryCardRootPath();  //iWatchDir.Append(PathInfo::ImagesPath());     iFs.NotifyChange(ENotifyWrite,iStatus,iWatchDir);  SetActive();     }

void CMyFSO::DoCancel()     {     iFs.NotifyChangeCancel();     }

void CMyFSO::RunL()     {     iObserver.OnChangeL(iStatus.Int(),iWatchDir);     }

CMyFSO::CMyFSO(MObserver& aObserver) : CActive(CActive::EPriorityStandard),     iObserver(aObserver), iFs(CCoeEnv::Static()->FsSession())     {     }

void CMyFSO::ConstructL()     {     CActiveScheduler::Add(this);     }

void CMyFSO::SetWatchDir(const TDesC& aDir) {  iWatchDir=aDir;

}

// End of File 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值