在使用WatchService时,我发现如果我删除正在被监视的目录中的文件,它将会触发一个ENTRY_MODIFY事件,然后是一个ENTRY_DELETE事件。
我知道从技术上讲,在删除之前文件可能会被修改,但是删除文件将触发ENTRY_MODIFY事件(这可能没人关心),这真的是期望的行为吗?
为了解决这个问题,我不得不添加一个条件来检查是否需要传递ENTRY_MODIFY事件。
我知道从技术上讲,在删除之前文件可能会被修改,但是删除文件将触发ENTRY_MODIFY事件(这可能没人关心),这真的是期望的行为吗?
为了解决这个问题,我不得不添加一个条件来检查是否需要传递ENTRY_MODIFY事件。
if (eventKind == ENTRY_CREATE) {
listener.fileCreated(file);
} else if (eventKind == ENTRY_MODIFY) {
if (Files.exists(fullPath, LinkOption.NOFOLLOW_LINKS)) {
listener.fileChanged(file);
}
} else if (eventKind == ENTRY_DELETE) {
listener.fileDeleted(file);
}
有没有更好的方法来处理这个问题(功能)?