2

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

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

我知道 linux 和大多数人将它们视为同一个东西,而就我的目的而言,它们是同一个东西。我只想知道之后的实际文件路径,并且即使在有批量移动的情况下也能够将其与原始文件路径匹配。

我将 python 用于父程序,但我愿意使用任何编码语言,尽管它最好是 Java/Python/某种形式的 C。

4

3 回答 3

3

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

于 2013-06-11T14:25:42.767 回答
0

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

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

于 2013-06-11T14:36:16.173 回答
0

在 Java 中(WatchService 和 WatchKey) - http://docs.oracle.com/javase/tutorial/essential/io/notification.html

在 Python(看门狗)中 - https://pypi.python.org/pypi/watchdog

于 2013-06-11T14:37:48.513 回答