Java 7 introduced WatchService
for monitoring file systems continuously. Is there a backport for Java 6 ?
Are there pure Java libraries with similar features ?
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With