2012-02-24 45 views
0

我正在使用nio.2類的監視服務API來觀看我的項目(操作系統平臺Ubuntu 11.10)中的特定目錄。無論何時進行更改,例如,如果將新文件添加到名爲abc.json的目錄中,它首先觸發CREATED事件,然後立即觸發MODIFIED事件。我知道這是由於操作系統首先創建一個0字節文件然後修改它的事實。在http://java.dzone.com/news/how-watch-file-system-changes給出的代碼中應該做出什麼修改才能獲得CREATE事件而不是MODIFIED事件。其次,當MODIFY事件被觸發時,event.context()。toString();方法給出如下輸出:.goutputstream-N2Z89V而不是由CREATED或DELETED事件給出的文件名。我怎樣才能得到修改的文件名?nio2類的監視服務API的問題

回答

1

如果您必須對數據執行一些處理,則最好處理Modify事件,因爲在創建時文件具有零字節(空文件)。

嘗試使用此方法獲取文件名

Path _directoryToWatch; 
String path = _directoryToWatch.resolve(watchEvent.context()).toString();