[英]Java: Watching a Directory for Changes
我認為您做得很好,發現了一個很棒的庫jpathwatch。 我不明白您的遞歸問題是什么:在此庫文檔中,我還沒有看到對linux的任何限制。
但是,如果出於某種原因jpathwatch無法在Linux上為您提供幫助,那不是問題:您可以自己運行du命令。 請參閱此參考: http : //linux.about.com/library/cmd/blcmdl1_du.htm
如果您是我,我可能會執行以下操作:編寫循環運行du的簡單腳本。 然后從連續讀取腳本輸出並對其進行分析的單獨線程中,從Java運行此腳本。
這是一種功能,需要支持JVM或本機庫,例如您在Windows中找到的庫。 如果在Java for Linux中找不到任何內容,建議您使用二進制Linux庫(在另一個問題中),然后在此之上構建Java本機類。
希望其他人能對您有所幫助。
要在Linux上執行此操作,您需要使用Java 7或使用inotify
的本機庫。 您是否考慮過JNotify庫 ? 它看起來像處理遞歸到子目錄,包括新創建的子目錄。
看看http://download.oracle.com/javase/tutorial/essential/io/notification.html
“ java.nio.file包提供了一個名為Watch Service API的文件更改通知API。該API使您可以向watch服務注冊一個目錄(或多個目錄)。注冊時,您可以告訴服務您事件的類型對以下內容感興趣:文件創建,文件刪除或文件修改。當服務檢測到感興趣的事件時,它將轉發到已注冊的進程。已注冊的進程具有專用於監視任何事件的線程(或線程池)它已經注冊。當事件發生時,將根據需要進行處理。”
更新:糟糕,您剛剛意識到您已經看到了這一點。 我沒有意識到這僅在Java 7中:-(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.