2011-11-01 21 views
16

Java 7 introdujo WatchService para monitorear continuamente los sistemas de archivos. ¿Hay un backport para Java 6?WatchService para Java 6

¿Existen bibliotecas de Java puro con características similares?

Respuesta

15

sí, por supuesto. Apache VFS hace exactamente esto. lo puedes encontrar en http://commons.apache.org/vfs/. Es una biblioteca de Java pura que puede controlar los archivos y es bastante fácil de usar:

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

el código anterior supervisará el archivo c: /MyFile.txt. si cambia, se llama al objeto nuevo MyListener().

+16

DefaultFileMonitor parece ser un sondeador, no es equivalente a WatchService que recibiría notificaciones del SO sin sondeo. –

4

Jetbrains IntelliJ IDEA tiene un componente 'Virtual File System' que activa un vigilante del sistema de archivos nativo que notifica los cambios del sistema de archivos subyacentes a IDEA. Durante dos años, Jetbrains ha lanzado una versión de código abierto que debería contener el componente. Funciona con Java 6.

Se lanzó bajo la licencia de Apache 2.0 como se indica en el FAQ page.

5

Una biblioteca pura de Java para esto es imposible; necesita un componente nativo si quiere evitar las encuestas.

http://wiki.netbeans.org/NativeFileNotifications proporciona información acerca de las API nativas disponibles y varias bibliotecas Java que las envuelven.