2008-09-30 129 views
8

我想体验关于分布式文件同步/复制的想法。为了使用户在工作时更高效,我想实现某种守护进程来监视某些目录中的更改(例如/ home/user/dirToBeMonitored或c:\ docs和setts \ user \ dirToBeMonitored)。因此,我可以知道每次(或在合理的时间间隔内)添加/更改/删除了哪个文件名。与操作系统无关的API来监视文件系统?

这是可能的任何高中级语言?你知道一些API(以及哪种语言?)来做到这一点吗?

谢谢。

+2

OP正在寻求一种跨平台的解决方案,下面的答案都没有解决这个问题。理想情况下,这样的解决方案应该用像C++这样的低级语言来实现,然后提供对各种高级语言(如Python)的绑定 – 2009-07-18 16:58:33

回答

9

虽然需要较大的库依赖性(值得它IMO)!

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

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

注意

10

这些API与WindowsLinux,Mac OS X以及任何其他Unix的名称看起来完全不同。我不知道任何跨平台的库以一致的方式处理这个问题。

0

而在OS X上,它被称为fsevents。这是一个OS级的API,所以从C或C++访问是最容易的。它几乎可以从任何语言访问,虽然您的首选语言的绑定可能尚未写入。