2010-03-08 94 views
1

對於需要在Windows上從java上映射的Samba共享上檢測文件系統更改的最新項目:創建,更新和刪除。此刻,我正在使用文件夾輪詢來維護文件列表及其修改的時間戳以查找事件。在Windows上使用Java檢測Samba共享上的文件系統更改

但我的問題是,此文件夾輪詢只在特定時間(例如每10秒)窺視文件夾,所以更新的文件可以在兩次輪詢之間更新兩次而不會識別。

當在mappep Samba共享上發生文件事件時,有沒有辦法從Java內部的窗口獲取事件?

謝謝!

回答

1

Java在當前IO API中沒有處理來自O/S的文件通知的任何東西。

的Java 7將會有一個新的IO API JSR-203具有watch file API將要麼使用本地O/S通知輪詢如果通知不支持的檢測文件更改。

與此同時,您可以查看是否有人實施了一個庫,允許您通過JNI掛接到O/S通知。我認爲IntelliJ IDEA爲此使用了一個本地lib。

尋找Sourceforge上,我發現jfilenotify,但我從來沒有使用過。

另外,您可以增加採樣頻率(但這將開始捶你的文件系統)或更改文件如何被添加版本號到文件名/文件夾的寫出來,這樣就可以很容易地知道什麼時候事情已經改變。

相關問題