有没有一种使用Java检测文件重命名的方式?(NIO的WatchService API或其他方法)根据我所见,当文件被重命名时,会出现两个不同的事件- ENTRY_DELETE和ENTRY_CREATE。
看一下jpathwatch。除了Java 7中指定的标准监视事件类型(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY
)之外,它还具有称为ENTRY_RENAME_FROM
和ENTRY_RENAME_TO
的附加事件,当文件重命名时会触发这些事件。请注意,这取决于底层操作系统是否支持文件重命名事件。
检测文件重命名是不可移植的。因为,尽管看起来令人惊讶,一个文件拥有名称的这个概念并不是可移植的。大多数Unix文件系统允许一个文件拥有任意数量的相关名称(包括零个名称)。在Unix(POSIX)世界中,重命名意味着添加一个新名称,然后删除原始名称。