Estimado este es el guardian que escucha los directorios si encuentra archivos, le envia el nombre del archivo a un metodo que lo lee y lo inserta en una base de datos.
public class DemonioHappyland {
public void IniciarGuardian(){
String file;
try {
WatchService watcher = FileSystems.getDefault().newWatchService();
Path dir = Paths.get(“C:\\happyland\\SFC”);
Path dir2 = Paths.get(“C:\\happyland\\HEC”);
dir.register(watcher, ENTRY_CREATE);
dir2.register(watcher, ENTRY_CREATE);
while (true) {
WatchKey key;
try {
// esperando por la llave disponible
key = watcher.take();
} catch (InterruptedException ex) {
return;
}
for (WatchEvent<?> event : key.pollEvents())
{
// Tipo del evento que sucede en la carpeta
WatchEvent.Kind<?> kind = event.kind();
// Nombre del archivo nuevo
@SuppressWarnings(“unchecked”)
WatchEvent<Path> ev = (WatchEvent<Path>) event;
Path fileName = ev.context();
//System.out.println(kind.name() + “: ” + fileName);
if (kind == OVERFLOW) {
continue;
} else if (kind == ENTRY_CREATE && fileName.toString().contains(“SFC”)) {
System.out.println(“Archivo Creado :”+ fileName);
file = fileName.toString();
ValidarArchivos leerArchivos = new ValidarArchivos ();
leerArchivos.validarArchivos(file);
} else if (kind == ENTRY_CREATE && fileName.toString().contains(“HEC”)) {
System.out.println(“Archivo Creado :”+ fileName);
file = fileName.toString();
ValidarArchivos leerArchivos = new ValidarArchivos ();
//array.insertar(file);
leerArchivos.validarArchivos(file);
}
}//fin for
// Resetear la key del proceso una ves finalizada la deteccion de archivos
boolean valid = key.reset();
if (!valid) {
break;
}
}
} catch (IOException ex) {
System.err.println(ex);
}
}
}
me imagino que aca debo implementar los hilos para que detecte un archivo dentro de una de las rutas declaradas y e inserte los datos de forma
paralela?. Agradeseria su ayuda con el tema de los hilos en esta implementacion.
Saludos amigo!! =)