Sunday, April 15, 2007

Clase para borrar archivos y carpetas en java

Este método que he creado lo utilizo para borrar estructuras de archivos que se encuentran anidadas. La clase, es una clase recursiva que va borrando niveles de archivos y directorios.

Las estructuras mas sencillas de eliminar son las estructuras que contienen un solo nivel aunque en rara ocasión no contienen archivos, las estructuras mas complejas son aquellas que contienen mas directorios anidados y archivos dentro de ellos.

En mi caso esta estructura la utilizaré dentro de un batch que lanzare desde un action de struts.



public class batch {
/**
* @param args
*/
public static void main(String[] args) {

new batch().new elimina().especificDirectory("c:/nueva/123");
// Método que borra todo dentro de esta carpeta.
// new batch().new elimina().directorio("c:/nueva");
}

class elimina {
public void directorio(String ruta) {
File file = new File(ruta);
String[] contenido = file.list();
for (int i = 0; i < contenido.length; i++) {
File fil = new File(ruta + "/" + contenido[i]);
if (!fil.delete()) {
fil = new File(ruta + "/" + contenido[i]);
if (fil.delete()) {
directorio(ruta + "/" + contenido[i]);
} else {
directorio(ruta + "/" + contenido[i]);
}
}
if (fil.isDirectory()) {
fil.delete();
}
}
}

public void especificDirectory(String ruta) {
new elimina().directorio(ruta);
File file = new File(ruta);
file.delete();
}
}
}

No comments: