WatchService for Java 6

par*_*tic 16 java filesystems java-6

引入Java 7 WatchService用于持续监视文件系统.是否有Java 6的后端口?

是否有具有类似功能的纯Java库?

Tho*_*rig 15

当然是.Apache VFS就是这样做的.你可以在http://commons.apache.org/vfs/下找到它.它是一个纯java库,可以监控文件,它很容易使用:

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();
Run Code Online (Sandbox Code Playgroud)

上面的代码将监视文件c:/MyFile.txt.如果它改变,则调用对象new MyListener().

  • DefaultFileMonitor似乎是一个轮询器,而不是WatchService的等价物,后者将在没有轮询的情况下从操作系统接收通知. (16认同)

Jes*_*ick 5

一个纯Java库是不可能的; 如果要避免轮询,则需要本机组件.

http://wiki.netbeans.org/NativeFileNotifications提供了有关可用本机API和包装它们的各种Java库的一些信息.