Buenas noches,
Estoy intentando hacer un programilla muy básico de como funciona el sistema de archivos NTFS.
La cosa es que estoy atascado en una función que borra todos los subdirectorios de una carpeta.
Mi idea es ir accediendo a ellos de uno en uno por recursividad. Es decir.
1.Tengo el objeto A.
-> Hay algo dentro?
---->Si. Llamada al objeto con la misma funcion.
---->No. Borrar y avanzar al siguiente objeto.
2.return;
La función en si es void. Y estoy usando un objeto llamado Carpeta, que usa un LinkedList<Carpeta> para guardar los hijos.
Agradecería cualquier tipo de ayuda.
EDIT @ 06/04/2011 15:00
SOLUCIÓN
/** Método que elimina de forma recursiva los subdirectorios de un sistema de carpetas y sus
*ficheros.
*
* @return boolean
* @author bloodhound
*
* **/
private boolean borrarRecursivo( Carpeta borrar ){
LinkedList<Carpeta> hijos = borrar.getHijos();
LinkedList<Fichero> ficheros = borrar.getFichero();
if( !hijos.isEmpty() ){
for( Carpeta carpeta : hijos ){
if ( borrarRecursivo( carpeta ) ){
System.out.println( "Borramos los hijos." );
} //if
} //for
if( !ficheros.isEmpty() ){
System.out.println("Borrar ficheros.");
}
return true;
} //if
if( !ficheros.isEmpty() ){
System.out.println("Borrar ficheros.");
}
return false;
} //borrarRecursivo
He usado un for-each como me han recomendado por arriba.
Como dice Nucklear en #10 era un return que no estaba en su sitio. Ahora esta función recorre bien todas las carpetas. Podéis usarla si alguna vez la necesitais.
Gracias a todos.