WatchService for Java 6 [closed]

2019-01-06 17:44发布

Java 7 introduced WatchService for monitoring file systems continuously. Is there a backport for Java 6 ?

Are there pure Java libraries with similar features ?

3条回答
【Aperson】
2楼-- · 2019-01-06 18:04

Jetbrains IntelliJ IDEA has a component 'Virtual File System' which fires a native file system watcher notifying underlying file system changes back to IDEA. For two years Jetbrains has been releasing an open source version which should be containing the component. It works with Java 6.

It's released under Apache 2.0 license as claimed in the FAQ page.

查看更多
3楼-- · 2019-01-06 18:11

yes, of course. Apache VFS does exactly this. you can find it under http://commons.apache.org/vfs/. It's a pure java library that can monitor files and it's pretty easy to use:

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();

the code above will monitor the file c:/MyFile.txt. if it changes, the object new MyListener() is called.

查看更多
【Aperson】
4楼-- · 2019-01-06 18:12

A pure Java library for this is impossible; you need a native component if you want to avoid polling.

http://wiki.netbeans.org/NativeFileNotifications gives some information about both the available native APIs and various Java libraries wrapping them.

查看更多
登录 后发表回答