2011-11-24 86 views
2

注:更换INSERT /从WatchService相应的事件删除...关于从Java7的WatchService类WatchService/dectect重命名和移动或

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

回答

-1

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

+0

我可以向你保证没有测试过这一点。在重命名你得到一个删除+创建活动,不是一个修改,你只能得到修改的东西,如chmod ... –