【发布时间】:2011-10-28 20:33:41
【问题描述】:
有没有办法使用 Java 检测文件重命名? (NIO 的 WatchService API 或任何其他) 从我在重命名文件时看到的情况来看,发生了两个单独的事件 - ENTRY_DELETE,然后是 ENTRY_CREATE。
【问题讨论】:
标签: java file rename nio detect
有没有办法使用 Java 检测文件重命名? (NIO 的 WatchService API 或任何其他) 从我在重命名文件时看到的情况来看,发生了两个单独的事件 - ENTRY_DELETE,然后是 ENTRY_CREATE。
【问题讨论】:
标签: java file rename nio detect
看看jpathwatch。除了在 Java 7 (ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY) 中指定的标准监视事件类型之外,它还具有称为 ENTRY_RENAME_FROM 和 ENTRY_RENAME_TO 的附加事件,这些事件将在文件重命名时触发。请注意,这取决于底层操作系统是否支持文件重命名事件。
【讨论】:
检测文件重命名不能移植。因为,看起来令人惊讶的是,文件 HAS-A 名称是不可移植的。大多数 Unix 文件系统允许文件具有任意数量的关联名称(包括零名称)。在 Unix (POSIX) 世界中,重命名意味着添加一个新名称,然后删除原来的名称。
【讨论】:
我认为jnotify 在您的情况下会很有用。
【讨论】: