如何检测Windows中的文件重命名/移动



我试图检测文件何时在windows中被移动或重命名,然后我想使用该更改来更新数据库。

当我说文件移动:我的意思是从一个目录移动到另一个目录,从"…/A/foo.txt"到"…/B/foo.txt"。当我说文件重命名:我的意思是重命名,但保持在同一目录"…/A/foo.txt"到"…/A/bar.txt"

我知道linux和大多数人把它们当作一样的东西,对我来说它们是一样的。我只是想知道实际的文件路径之后,能够匹配它到原始文件路径,即使在有批量移动的情况下。

我使用python作为父程序,但我愿意使用任何编码语言,但最好是Java/python/某种形式的c。

如果您使用java 7,您可以简单地使用WatchServiceWatchKey。这是一个监视目录的观察者,每次修改、创建或删除某些内容时,您可以执行操作/文件处理。

我建议使用watchdog python模块https://github.com/gorakhargosh/watchdog

它可以处理这些情况以及其他文件系统事件

In Java (WatchService and WatchKey) - http://docs.oracle.com/javase/tutorial/essential/io/notification.html

In Python (Watchdog) - https://pypi.python.org/pypi/watchdog

最新更新