需要監視多個文件夾和文件以查找UNIX中的任何更改。我需要能夠鉤住我的java代碼,以進行諸如創建/修改/刪除等任何更改。任何人都可以建議任何基於Java的框架來做同樣的事情嗎?在UNIX中監視文件/文件夾以獲取更改通知
4
A
回答
4
如果你使用的Java 7,您可以使用WatchService API監視更改文件系統。
如果您遇到了Java 6-,您可以查看this post或this other one中提出的一些替代方案。
2
你看過Java 7的File Notifier service?
java.nio.file包提供文件更改通知API ,稱爲Watch Service API。該API使您能夠在監視服務中註冊 目錄(或多個目錄)。在註冊時,您可以告訴服務您感興趣的事件類型:文件 創建,文件刪除或文件修改。當服務 檢測到感興趣的事件時,它將被轉發到註冊的 進程。註冊過程有一個線程(或線程池) 致力於監視它已註冊的任何事件。當事件進入時,會根據需要進行處理。
JNotify是一個類似的服務/庫爲那些誰也無法使用Java 7
1
Java 7引入了WatchService
,它監視註冊對象的變化和事件。
示例 -
Path myDir = Paths.get("D:/test");
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
myDir.register(watcher, StandardWatchEventKind.ENTRY_CREATE,
StandardWatchEventKind.ENTRY_DELETE, StandardWatchEventKind.ENTRY_MODIFY);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event : events) {
if (event.kind() == StandardWatchEventKind.ENTRY_CREATE) {
System.out.println("Created: " + event.context().toString());
}
if (event.kind() == StandardWatchEventKind.ENTRY_DELETE) {
System.out.println("Delete: " + event.context().toString());
}
if (event.kind() == StandardWatchEventKind.ENTRY_MODIFY) {
System.out.println("Modify: " + event.context().toString());
}
}
} catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
相關問題
- 1. 監視文件夾的更改
- 2. 監視文件更改Java
- 3. 監視文件的更改
- 4. 監視文件更改
- 5. 文件監視和更改
- 6. 監視文件的更改
- 7. Linux文件夾更改自動通知
- 8. 如何使用QFileSystemWatcher監視文件夾以進行更改
- 9. Perforce:我可以在文件上添加「監視」,以便在文件更改時收到通知。
- 10. 如何在可可中獲取文件夾更改通知(文件夾查看器)
- 11. 如何獲取主文件夾的文件和子文件夾中的更改?
- 12. PHP:監視文本文件的更改
- 13. 監視文件的網絡文件夾
- 14. C#文件/文件夾監視器
- 15. 監聽文件夾的更改java
- 16. 用於監視和複製文件更改的UNIX shell腳本
- 17. Android文件夾監視器
- 18. 監視的文件夾
- 19. 正在監聽文件夾和文件(更改)
- 20. c + + - 在Linux中監視mount文件夾
- 21. 監視TeamCity中最近更改的文件夾
- 22. 使用node.js監視文件夾的更改,並在文件路徑被更改時打印文件路徑
- 23. 如何監視新文件或文件夾的文件夾
- 24. 獲取函數知道在文件夾中插入文件
- 25. 監視特定文件夾的更改並檢測哪些文件在Cocoa中發生了更改
- 26. 如何獲取文件夾中圖標文件的文件名以創建/更新文件夾的desktop.ini文件?
- 27. 使用libuv監視文件更改
- 28. 監視文件更改 - Asyncio和Flask
- 29. 如何監視文件的更改?
- 30. 如何監視Python文件的更改?
我們有一個限制,只使用Java的6能否請您提出任何框架是用java 6,和開源兼容? – Mithun 2013-02-11 10:51:17
@Mithun我已經添加了兩個與java 6兼容庫的鏈接。 – assylias 2013-02-11 10:54:53