有没有办法使用Java检测文件重命名? (NIO的WatchService API或任何其他) 从我在重命名文件时看到的情况发生了两个单独的事件 - ENTRY_DELETE,然后是ENTRY_CREATE。
答案 0 :(得分:7)
看看jpathwatch。除了Java 7(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY
)中指定的标准监视事件类型之外,它还具有名为ENTRY_RENAME_FROM
和ENTRY_RENAME_TO
的其他事件,这些事件将在重命名文件时触发。请注意,这取决于底层操作系统是否支持文件重命名事件。
答案 1 :(得分:4)
检测文件重命名无法移植。因为,看起来令人惊讶,文件HAS-A名称不可移植的想法。大多数Unix文件系统允许文件具有任意数量的ASSOCIATED名称(包括零名称)。在Unix(POSIX)世界中,重命名意味着添加新名称,然后删除原始名称。
答案 2 :(得分:1)
我认为jnotify对您的情况有用。