Poco::DirectoryWatcher no notification for DW_ITEM_MODIFIED

Viewed 17

try to figure out how to use Poco::DirectoryWatcher. Unfortunately, it is not working like expected. When i add a file to the watch folder, delegate onFileAdded is called then delegate onFileChanged. From this point silence. When i change the newly added file or any other, delegate onFileChanged is not called.

Compiled on a Windows 10 64 bit (VMWare WS guest on Windows 10 46 bit host). Compiled with VS 2022, static linkage. Poco (1.11.1) libarary linked from vcpkg.

This is my source code simplyfied.

Poco::File dir("c:\\test");
std::shared_ptr<DirectoryWatcher> watcher;
watcher.reset(new Poco::DirectoryWatcher(dir, Poco::DirectoryWatcher::DW_ITEM_ADDED | Poco::DirectoryWatcher::DW_ITEM_MODIFIED, 5));

watcher->itemAdded += Poco::delegate(this, &tcDirectoryWatcher::onFileAdded);
watcher->itemAdded += Poco::delegate(this, &tcDirectoryWatcher::onFileChanged);
1 Answers

Sorry, i addded the OnFileChanged to itemAdded delegate. The correct code is:

    Poco::File dir("c:\\test");
std::shared_ptr<DirectoryWatcher> watcher;
watcher.reset(new Poco::DirectoryWatcher(dir, Poco::DirectoryWatcher::DW_ITEM_ADDED | Poco::DirectoryWatcher::DW_ITEM_MODIFIED, 5));

watcher->itemAdded += Poco::delegate(this, &tcDirectoryWatcher::onFileAdded);
watcher->itemModified+=Poco::delegate(this,&tcDirectoryWatcher::onFileChanged);
Related