2011-11-24 95 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 ... –