2011-11-01 54 views
16

Java 7 đã giới thiệu WatchService để giám sát hệ thống tệp liên tục. Có một backport cho Java 6?WatchService cho Java 6

Có thư viện Java thuần túy với các tính năng tương tự không?

Trả lời

15

vâng, tất nhiên. Apache VFS thực hiện chính xác điều này. bạn có thể tìm thấy nó dưới http://commons.apache.org/vfs/. Đó là một thư viện java thuần túy có thể giám sát các tệp và nó khá dễ sử dụng:

FileSystemManager manager = VFS.getManager(); 
FileObject file= manager.resolveFile("c:/MyFile.txt"); 

DefaultFileMonitor fm = new DefaultFileMonitor(new MyListener()); 
fm.setDelay(5000); 
fm.addFile(file); 
fm.start(); 

mã ở trên sẽ giám sát tệp c: /MyFile.txt. nếu nó thay đổi, đối tượng MyListener() mới được gọi.

+16

DefaultFileMonitor có vẻ là một poller, không tương đương với WatchService sẽ nhận thông báo từ HĐH mà không cần bỏ phiếu. –

4

Jetbrains IntelliJ IDEA có một thành phần 'Virtual File System' sẽ kích hoạt trình theo dõi hệ thống tệp gốc thông báo các thay đổi hệ thống tệp cơ bản về IDEA. Trong hai năm, Jetbrains đã phát hành một phiên bản nguồn mở nên chứa thành phần này. Nó hoạt động với Java 6.

Nó được phát hành theo giấy phép Apache 2.0 như được yêu cầu trong FAQ page.

5

Thư viện Java thuần túy cho điều này là không thể; bạn cần một thành phần gốc nếu bạn muốn tránh bỏ phiếu.

http://wiki.netbeans.org/NativeFileNotifications cung cấp một số thông tin về cả các API gốc sẵn có và các thư viện Java khác nhau gói chúng.

Các vấn đề liên quan