跨平台C ++文件系统观察器

时间:2012-04-15 17:27:47

标签: c++ filesystems cross-platform filesystemwatcher

我正在寻找一个跨平台文件系统观察程序,类似于.NET中的FileSystemWatcher类。由于它是守护进程/服务,我不喜欢Qt的QFileSystemWatcher。我真的很想避免它,因为我不想依赖Qt,因为我的程序将成为一个守护进程。

我还看到一个proposal这样的类要包含在Boost中,但据我所知,这个类还没有包括在内。

是否存在跨平台C ++文件系统观察程序?

4 个答案:

答案 0 :(得分:4)

Qt分为modules,因此使用此功能并不意味着您必须使用GUI库。

QFileSystemWatcher位于QtCore,没有GUI功能。

答案 1 :(得分:2)

我没有用过这个(我来这个问题寻找替代方案),但http://code.google.com/p/simplefilewatcher似乎是一个不错的选择。它目前尚未维护,但相关的API可能相当稳定。如果我使用这个库,我会记得更新这个答案。

答案 2 :(得分:0)

为了完整起见,还值得一提的是Poco' DirectoryWatcher

答案 3 :(得分:0)

作为替代方案,还有" Entropia文件系统观察器"

https://bitbucket.org/SpartanJ/efsw这是简单文件监视器的分支。

  

efsw目前支持以下平台:

     

Linux via inotify

     

Windows通过I / O完成端口

     

Mac OS X通过FSEvents或kqueue

     

FreeBSD / BSD通过kqueue

     

独立于操作系统的通用观察程序(轮询磁盘以查找目录)   快照并定期比较它们

     

如果任何后端因任何原因无法启动,它将会回退   独立于操作系统的实现。