我目前正在 Java 中实现我自己的 WatchService API 版本。
(你可以引用这个example来了解WatchService文件的作用。)
我已经为以下情况实现了代码:
- 每当在目录或其子目录内创建文件时。
- 每当从目录或其子目录中删除文件时。
- 每当目录或其子目录内的文件被修改时。 (基于文件最后修改日期的比较)
我面临一个问题,每当文件被重命名时,我不明白如何跟踪它。
此链接包含我的高级代码的要点:click here
每当文件被重命名时,我都会得到 2 个结果
FILE DELETED : {old filename}
FILE ADDED : {new filename}
但我想要的实际结果是:
FILE RENAMED: FROM {old filename} TO {new filename}
我该如何应对这一挑战?
我提供了一个伪代码(我认为这足以理解手头的问题),如果需要我也可以提供整个代码:)
最佳答案
您可以存储每个文件的哈希值。 当您检测到某些文件被删除并且某些文件添加时,比较哈希值,如果它们匹配,您就会发现重命名/移动的文件。
关于java - 如何检测文件是否被重命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54703532/