Java:文件重命名检测
Posted
技术标签:
【中文标题】Java:文件重命名检测【英文标题】:Java: File Renaming Detection 【发布时间】:2011-10-28 20:33:41 【问题描述】:有没有办法使用 Java 检测文件重命名? (NIO 的 WatchService API 或任何其他) 从我在重命名文件时看到的情况来看,发生了两个单独的事件 - ENTRY_DELETE,然后是 ENTRY_CREATE。
【问题讨论】:
【参考方案1】:看看jpathwatch。除了在 Java 7 (ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY
) 中指定的标准监视事件类型之外,它还具有称为 ENTRY_RENAME_FROM
和 ENTRY_RENAME_TO
的附加事件,这些事件将在文件重命名时触发。请注意,这取决于底层操作系统是否支持文件重命名事件。
【讨论】:
【参考方案2】:检测文件重命名不能移植。因为,看起来令人惊讶的是,文件 HAS-A 名称是不可移植的。大多数 Unix 文件系统允许文件具有任意数量的关联名称(包括零名称)。在 Unix (POSIX) 世界中,重命名意味着添加一个新名称,然后删除原来的名称。
【讨论】:
【参考方案3】:我认为jnotify 在您的情况下会很有用。
【讨论】:
以上是关于Java:文件重命名检测的主要内容,如果未能解决你的问题,请参考以下文章
git 检测您的 Java 项目中的重命名/移动效果不佳 - 该怎么办?