2
如何使用POCO創建多深度目錄觀察器?使用Poco的多深度目錄觀察器
如果是主要d:\ DDD,我們甚至去d:\ DDD \ D1 \ D2 \ D3 \ NewTextDoc.txt,那麼也應該通知我。 我能夠僅爲初始目錄執行此操作。 我使用事件監聽器,他們通知我,如果在初始目錄中發生任何事情。
這裏是我的代碼工作:
try
{
AutoPtr<PropertyFileConfiguration> pConf = new
PropertyFileConfiguration("EventListener.properties");
Poco::DirectoryWatcher dirWatcher(pConf->getString("path"),
Poco::DirectoryWatcher::DW_FILTER_ENABLE_ALL,
Poco::DirectoryWatcher::DW_DEFAULT_SCAN_INTERVAL);
dirWatcher.itemModified += Poco::delegate(this, &ClsDirWatcher::onFileModified); //good
dirWatcher.itemMovedFrom += Poco::delegate(this, &ClsDirWatcher::onFileMovedFrom); //no way, seems only linux
dirWatcher.itemMovedTo += Poco::delegate(this, &ClsDirWatcher::onFileMovedTo); //no way, seems only linux
dirWatcher.itemAdded += Poco::delegate(this, &ClsDirWatcher::onFileAdded); //working fine
dirWatcher.itemRemoved += Poco::delegate(this, &ClsDirWatcher::onFileRemoved); //lol!!!
waitForTerminationRequest();
}
catch (Poco::Exception& exc)
{
logger().log(exc);
}
那麼,我明白,我必須使用線程,每當創建一個新的目錄時,這些線程將單獨保存這些目錄。那是這樣嗎? – sourav
好吧,可以有一個父線程,並且無論何時創建一個新目錄,都會有一個線程來監視目錄。以這種方式,我們可以形成一個遞歸線程創建來監視所有的目錄和子目錄。但是,問題是,不會有任何主控制來處理所有的線程。 我不認爲這是一個很好的設計。有人請告訴我方式。 – sourav