java - 如何检测文件是否被重命名?

标签 java file detection file-rename

我目前正在 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/

相关文章:

java - 在 JGit 中使用 key 安全地访问 Git 存储库

java - 请让我知道我的java代码是否正确?

c# - UWP 中的 Process.Start

javascript - 如何设置鼠标悬停显示延迟

JavaScript 检测 Android 浏览器中的选择

video - 在opencv的静止视频中检测到不一致的圆圈

java - 如何使用ReSTClient API将空参数传递给执行Web Service的方法

java - 在这种情况下使用空的 catch block 是不好的做法吗?

c - 使用 unix 函数在 OSX 下移动/复制文件

c# - 在没有实际文件的情况下使用 FileStream