WatchService / detect重命名和/或移动

时间:2011-11-24 16:44:33

标签: java java-7

注意:使用WatchService中的相应事件替换INSERT / DELETE ...

关于Java7的WatchService类的另一个问题。如何可靠地检测目录/文件的重命名(甚至可能是移动)?在一个更彻底的想法中,甚至很难检测到重命名,或者更确切地说,它会侵入很多状态来跟踪。我认为检查相同文件/目录标识符的INSERT / DELETE或DELETE / INSERT对是不够的。我认为仅跟踪一个事件是不够的。它可能会干扰其他DELETE或INSERT文件。因此,我所能想到的是一个非常丑陋的启发式方法,用于跟踪唯一标识符并监视INSERT和后续DELETE,这可能会干扰其他事件或DELETE / INSERT。因此,我认为我需要某种超时,并在它到期后只插入/删除所有跟踪的更改。绝对容易出错或最大限度地检测重命名:-(我认为可以从Linux和Windows获取相关信息(RENAME事件),但我目前不打算使用JNI,因为我已经实现了所有内容WatchService(即使我只花了几天时间)。

1 个答案:

答案 0 :(得分:-1)

StandardWatchEventKinds.ENTRY_MODIFY是您正在寻找的事件。

相关问题