【问题标题】:Portable Directory/File watch library in C / C++C / C++ 中的可移植目录/文件监视库
【发布时间】:2012-02-08 16:31:14
【问题描述】:

是否有可移植的库来监视文件系统更改而无需轮询?

我知道有

但我还没有找到任何便携式包装器。

是否有适用于 Linux、Windows 和 OS X 或其子集的便携式包装器?

【问题讨论】:

  • GLib 的GIO 使用的 GAMIN 涵盖 Linux 和 FreeBSD,不了解 OSX 或 Windows。
  • Java 的便携性对您来说不够吗?还是您明确需要 C++ 包装器?
  • Java 对任务的内存和磁盘空间占用很大

标签: c++ c filesystems


【解决方案1】:

QFileSystemWatcher -- Qt 非常跨平台。

【讨论】:

  • 听起来像是一个可能的解决方案。但是我经历了预构建的 moc 和缓慢的编译/链接不令人满意。我仍然希望存在更精简的解决方案(无需手动将其从 Qt 中删除。)
  • CMake 使 MOC 的东西变得非常简单,QtCore 是一个非常轻量级的库,我从未注意到编译/链接的额外时间,但您可以尝试使用 GNU Gold 作为更快的替代链接器en.wikipedia.org/wiki/Gold_(linker)
  • 仅供参考:在 Windows 上,QFileSystemWatcherFindNextChangeNotification 无法在使用过时版本 samba 的 linx 服务器上的网络共享上正常工作(我们有一个运行版本为 3.0.22 的服务器,这会出现问题) .在这种情况下,您必须强制 QFileSystemWatcher 使用轮询实现。
【解决方案2】:

看看jnotify。它是用 java 编写的,可以在所有主要操作系统上运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2011-06-03
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2010-10-02
    相关资源
    最近更新 更多