Bastante simple este snippet para algo que no es nativo de Java. Java no permite borrar un directorio que contenga archivos adentro. Lo primero que hay que hacer para eliminar el directorio es simplemente eliminar los archivos interiores. Aca un snippet que se llama recursivamente.

/**
 * Deletes the given path and, if it is a directory, deletes all its children.
 */
public boolean deleteWithChildren(String path) {
	File file = new File(path);
	if (!file.exists()) {
		return true;
	}
	if (!file.isDirectory()) {
		return file.delete();
	}
	return this.deleteChildren(file) && file.delete();
}

private boolean deleteChildren(File dir) {
	File[] children = dir.listFiles();
	boolean childrenDeleted = true;
	for (int i = 0; children != null && i < children.length; i++) {
		File child = children[i];
		if (child.isDirectory()) {
			childrenDeleted = this.deleteChildren(child) && childrenDeleted;
		}
		if (child.exists()) {
			childrenDeleted = child.delete() && childrenDeleted;
		}
	}
	return childrenDeleted;
}
Categories: java

Rodrigo Asensio

Apasionado por la tecnología

7 Comments

Sebastian · August 30, 2011 at 12:49 am

me tira error en el return path.delete(); ><

Rodrigo Asensio · August 30, 2011 at 8:17 am

Que tipo de error ?

Juan Cobos · February 29, 2012 at 12:52 pm

Rodrigo Asensio, ¿tu pa qué coño te pones a dar clases de java en tu blog? ¿Cómo tienes la vergüenza a preguntarle que tipo de error? Normal que le de ese error si la propiedad path te la has sacao de la manga.

Anda, sigue haciendo curso de FPO de java que a lo mejor algún día te dan un trabajo y te dejan usar la fotocopiadora.

Rodrigo Asensio · March 1, 2012 at 1:49 am

Te voy a explicar por que le pregunte tal cosa para que entiendas porque probablemente tu situacion no sea similar a la mia. Yo tengo 2 trabajos y 2 hijos. Ya no tengo mucho tiempo para escribir articulos como me gustaria para devolver a la comunidad todo lo que me dio sin pedir nada a cambio. Entonces como lo hago “ad honorem” me tome el privilegio de que me de una ayuda para poder corregirlo porque te cuento a las 8.17am ya estaba en el trabajo.

Entonces por esto la verdad que tu comentario me parece despreciar algo que lo hice de onda y tratando de ayudar a gente. Y ademas si hay un problema perfectamente puedo seguir aprendiendo de el. Como te digo, son las 11.35pm, mi flia duerme y yo le quito tiempo a mi 2do laburo para aclararte el porque.

Es mas, ahora veo que nunca me contesto y veo que el error es obvio, te cuento, este articulo lo escribi como en el 2006 y cuando cambie a wordpress se importo y veo que quedo para el culo. Asi que no es copado que andes por ahi insultando sin quiza saber cual es la razon.

Tambien iba a responderte esto personalmente pero veo que fuiste hombre para poner el comentario pero bastante poco hombre para dejar un email real.

Ojala entiendas.

Saludos.
R

ps. Mirando las cosas positivamente me ayudaste a darme cuenta de que quedo mal importado este post asi que lo arregle. Ojala puedas hacer funcionar lo que buscabas. slds.

pelo · September 3, 2012 at 10:53 am

Muy bueno, fue solo copiar y pegar y anduvo de maravillas +10

L · June 29, 2016 at 11:33 am

Gracias.

Paul · May 10, 2017 at 5:05 am

Muchisimas gracias, me ha servido de mucho!
Y… no hagas caso de gente soberbia y estupida como “JuanC Cobos”, que ni tienen respeto por el trabajo desinteresado de gente como tu, ni seguro ha publicado nada para ayudar a otros….
Sigue asi!

Leave a Reply

Your email address will not be published. Required fields are marked *