用于监控文件系统的跨操作系统API?

8
我想尝试关于分布式文件同步/复制的想法。 为了使用户工作时更加高效,我希望实现一种守护进程来监视某个目录中的更改(例如 /home/user/dirToBeMonitored 或 c:\docs and setts\user\dirToBeMonitored)。 因此,我可以知道每个时间点(或在合理的间隔内)添加/更改/删除的文件名。这与任何高中级语言都可能吗?您是否知道一些API(以及使用哪种语言)可以实现这一点?
谢谢。

2
OP正在寻求一个跨平台的解决方案,以下回答都没有解决这个问题。理想情况下,这样的解决方案应该使用像C++这样的低级语言实现,然后提供绑定到各种高级语言,如Python。 - Eric Drechsel
4个回答

10

对于WindowsLinuxMac OS X和其他你能想到的Unix系统,它们的API完全不同。我不知道有任何跨平台库可以以一致的方式处理这个问题。


9

一个合法的答案,尽管它需要依赖一个相当大的库(但我认为这是值得的)!

QT提供了QFileSystemwatcher类,它使用底层平台的本机机制。

更好的是,你可以使用Python或Ruby的QT语言绑定。 在这里有一个简单的PyQT4应用程序,它使用QFileSystemWatcher

注意事项


0

0

在 OS X 上,它被称为 fsevents。这是一个操作系统级别的 API,因此最容易从 C 或 C++ 中访问。虽然你喜欢的语言的绑定可能尚未编写,但它应该可以从几乎任何语言中访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接