Poco::DirectoryWatcher 没有 DW_ITEM_MODIFIED 通知

问题描述 投票:0回答:1

尝试弄清楚如何使用Poco::DirectoryWatcher

不幸的是,它没有按预期工作。

当我将文件添加到监视文件夹时,会调用委托 onFileAdded,然后调用委托 onFileChanged

从这时起,一片寂静。当我更改新添加的文件或任何其他文件时,不会调用委托 onFileChanged

在 Windows 10 64 位(Windows 10 46 位主机上的 VMWare WS 来宾)上编译。

使用VS 2022编译,静态链接。 Poco (1.11.1) 库从 vcpkg 链接。

这是我的简化源代码。

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);
c++ poco
1个回答
0
投票

抱歉,我将 OnFileChanged 添加到了 itemAdded 委托中。 正确的代码是:

    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);
© www.soinside.com 2019 - 2024. All rights reserved.