una recorrer obtener nombres metodo manejo los listfiles listar leer directorios directorio dentro como carpeta archivos acceder abrir java directory filesystems listener
here

recorrer - Escucha del directorio en Java



obtener los nombres de los archivos de una carpeta java (3)

Tengo una aplicación en la que quiero escuchar cualquier cambio realizado en un directorio en particular. La aplicación debería enviarme un ping tan pronto como se agreguen, eliminen o actualicen los archivos en ese directorio.


Desde Java 1.7, puede utilizar la API de Watch Service para registrarse en eventos de directorio. Es parte de la biblioteca New I / O (NIO) de Java y no requiere ningún recurso adicional. Un ejemplo de cómo usar la API se puede encontrar en la documentación oficial .

Después de registrar el WatchService, puede recuperar eventos para la ruta de destino de esta manera:

for (WatchEvent<?> event: key.pollEvents()) { // Context for directory entry event is the file name of entry WatchEvent<Path> ev = cast(event); Path name = ev.context(); Path child = dir.resolve(name); // print out event System.out.format("%s: %s/n", event.kind().name(), child); }


Jnotificar para la notificación de archivos en java. Muestra de código

public void sample() throws Exception { // path to watch String path = System.getProperty("user.home"); // watch mask, specify events you care about, // or JNotify.FILE_ANY for all events. int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED; // watch subtree? boolean watchSubtree = true; // add actual watch int watchID = JNotify.addWatch(path, mask, watchSubtree, new Listener()); // sleep a little, the application will exit if you // don''t (watching is asynchronous), depending on your // application, this may not be required Thread.sleep(1000000); // to remove watch the watch boolean res = JNotify.removeWatch(watchID); if (!res) { // invalid watch ID specified. } } class Listener implements JNotifyListener { public void fileRenamed(int wd, String rootPath, String oldName, String newName) { print("renamed " + rootPath + " : " + oldName + " -> " + newName); } public void fileModified(int wd, String rootPath, String name) { print("modified " + rootPath + " : " + name); } public void fileDeleted(int wd, String rootPath, String name) { print("deleted " + rootPath + " : " + name); } public void fileCreated(int wd, String rootPath, String name) { print("created " + rootPath + " : " + name); } void print(String msg) { System.err.println(msg); } }


Puedes usar JNotify

JNotify es una biblioteca java que permite que la aplicación java escuche eventos del sistema de archivos, como: Archivo creado Archivo modificado Nombre del archivo Archivo eliminado Plataformas compatibles

Windows (2000 o más reciente) Notas de Windows Linux con compatibilidad con INofity (2.6.14 o más reciente) Notas de Linux Mac OS X (10.5 o más reciente) Notas de Mac OS

Más información :

Descarga JNotify desde here

Extraiga el zip, ponga .dll / .so de acuerdo con la plataforma en su ruta lib. y cree una clase proporcione jnotify-0.93.jar en la ruta de clase.

Código de muestra:

package org.life.java..questions; import net.contentobjects.jnotify.JNotify; import net.contentobjects.jnotify.JNotifyListener; /** * * @author Jigar */ public class JNotifyDemo { public void sample() throws Exception { // path to watch String path = System.getProperty("user.home"); // watch mask, specify events you care about, // or JNotify.FILE_ANY for all events. int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED; // watch subtree? boolean watchSubtree = true; // add actual watch int watchID = JNotify.addWatch(path, mask, watchSubtree, new Listener()); // sleep a little, the application will exit if you // don''t (watching is asynchronous), depending on your // application, this may not be required Thread.sleep(1000000); // to remove watch the watch boolean res = JNotify.removeWatch(watchID); if (!res) { // invalid watch ID specified. } } class Listener implements JNotifyListener { public void fileRenamed(int wd, String rootPath, String oldName, String newName) { print("renamed " + rootPath + " : " + oldName + " -> " + newName); } public void fileModified(int wd, String rootPath, String name) { print("modified " + rootPath + " : " + name); } public void fileDeleted(int wd, String rootPath, String name) { print("deleted " + rootPath + " : " + name); } public void fileCreated(int wd, String rootPath, String name) { print("created " + rootPath + " : " + name); } void print(String msg) { System.err.println(msg); } } public static void main(String[] args) throws Exception { new JNotifyDemo().sample(); } }

Salida:

modified C:/Documents and Settings/jigar: LOCALS~1/Temp/etilqs_4s8ywsvyukghK0uDxRop modified C:/Documents and Settings/jigar : LOCALS~1/Temp/etilqs_4s8ywsvyukghK0uDxRop modified C:/Documents and Settings/jigar : LOCALS~1/Temp/output1295531079119 modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default deleted C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001ea9 created C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eae modified C:/Documents and Settings/jigar : LOCALS~1/Temp/etilqs_04gchL79ZJrpClZIqiom modified C:/Documents and Settings/jigar : LOCALS~1/Temp/etilqs_04gchL79ZJrpClZIqiom modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eae modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eae modified C:/Documents and Settings/jigar : LOCALS~1/Temp/output1295531079119 modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Current Session deleted C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001ea8 created C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eaf modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache modified C:/Documents and Settings/jigar : LOCALS~1/Temp/etilqs_04gchL79ZJrpClZIqiom modified C:/Documents and Settings/jigar : LOCALS~1/Temp/etilqs_04gchL79ZJrpClZIqiom modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eaf modified C:/Documents and Settings/jigar : Local Settings/Application Data/Google/Chrome/User Data/Default/Cache/f_001eaf