首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有人在C++/WinAPI中有一个类似FileSystemWatcher的类?

有没有人在C++/WinAPI中有一个类似FileSystemWatcher的类?
EN

Stack Overflow用户
提问于 2010-01-21 14:13:46
回答 4查看 15.6K关注 0票数 12

我需要一个.Net的FileSystemWatcher模拟的原始C++/WinAPI。我几乎开始自己使用FindFirstChangeNotification/FindNextChangeNotification,编写代码,但后来我突然想到,我可能不是第一个需要它的人,也许会有人愿意分享。

理想情况下,我需要的是一个可以按如下方式使用的类:

代码语言:javascript
运行
复制
FileWatcher fw;
fw.startWatching("C:\MYDIR", "filename.dat", 
     FileWatcher::SIZE | FileWatcher::LAST_WRITE,
     &myChangeHandler);
...
fw.stopWatching();

或者如果它使用像boost::signal这样的东西,那就更好了。但是,请不要依赖标准库、boost和原始WinAPI。谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-22 06:05:39

那么ReadDirectoryChangesW函数呢?

http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspx

它将通知存储在缓冲区中,这样您就不会错过任何更改(除非缓冲区溢出)

票数 7
EN

Stack Overflow用户

发布于 2010-01-22 03:56:26

有一些公共领域的代码here。我当前的项目使用这个(继承自以前的开发人员)。它工作得很好,但我们确实因为不清楚的原因(可能不是由这段代码引起的)而错过了通知。

请注意,这里的Win32应用程序接口有一些限制,这使得很难/不可能避免遗漏通知。有关空气污染指数的背景资料及据称的工作详情为here

票数 5
EN

Stack Overflow用户

发布于 2013-09-17 16:47:53

2021答案:

下面列出的repo的派生版本是主动维护的:https://github.com/SpartanJ/efsw

老生常谈:

这是一个跨平台的解决方案,但是很好地完成了包装Win32的工作:https://github.com/jameswynn/simplefilewatcher

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2107275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档