我想试验有关分布式文件同步/复制的想法 . 为了在用户工作时提高效率,我想实现某种守护进程来监视某些目录中的更改(例如/ home / user / dirToBeMonitored或c:\ docs和setts \ user \ dirToBeMonitored) . 因此,我可以知道每次(或在合理的时间间隔内)添加/更改/删除了哪个文件名 .
这可能适用于任何高中级语言吗?你知道一些API(以及使用哪种语言?)来做到这一点?
谢谢 .
一个很好的答案,虽然需要一个大的图书馆依赖(非常值得IMO)!
QT提供了QFileSystemwatcher类,它使用底层平台的本机机制 .
更好的是,您可以使用Python或Ruby的QT语言绑定 . Here是一个使用QFileSystemWatcher的简单PyQT4应用程序 .
Notes
关于creating deployable PyQT4 apps的一个很好的参考,特别是在OSX上,但也适用于Windows .
之前发布的相同解决方案here .
其他跨平台工具包也可以做到这一点(例如Gnome的GIO有GFileMonitor,虽然它只是UNIX而且没有't support OSX' s FSEvents机制afaik) .
对于Windows,Linux,Mac OS X以及您可以命名的任何其他Unix,API完全不同 . 我不知道任何跨平台库以一致的方式处理这个问题 .
在Linux中,它被称为inotify .
在OS X上,它被称为fsevents . 它最容易从C或C访问 . 它几乎可以从任何语言访问,但您的首选语言的绑定可能尚未编写 .
4 回答
一个很好的答案,虽然需要一个大的图书馆依赖(非常值得IMO)!
QT提供了QFileSystemwatcher类,它使用底层平台的本机机制 .
更好的是,您可以使用Python或Ruby的QT语言绑定 . Here是一个使用QFileSystemWatcher的简单PyQT4应用程序 .
Notes
关于creating deployable PyQT4 apps的一个很好的参考,特别是在OSX上,但也适用于Windows .
之前发布的相同解决方案here .
其他跨平台工具包也可以做到这一点(例如Gnome的GIO有GFileMonitor,虽然它只是UNIX而且没有't support OSX' s FSEvents机制afaik) .
对于Windows,Linux,Mac OS X以及您可以命名的任何其他Unix,API完全不同 . 我不知道任何跨平台库以一致的方式处理这个问题 .
在Linux中,它被称为inotify .
在OS X上,它被称为fsevents . 它最容易从C或C访问 . 它几乎可以从任何语言访问,但您的首选语言的绑定可能尚未编写 .