@ -11,11 +11,11 @@ public class tree {
File f = new File ( path ) ;
File f = new File ( path ) ;
System . out . println ( printDirectoryTree ( f ) ) ;
System . out . println ( printDirectoryTree ( f ) ) ;
}
}
/ / Print Tree
/ / INICIALIZADOR
/ / Creamos las variables para ejecutar las funciones
public static String printDirectoryTree ( File directorio ) {
public static String printDirectoryTree ( File directorio ) {
if ( ! directorio . isDirectory ( ) ) {
if ( ! directorio . isDirectory ( ) ) {
throw new IllegalArgumentException ( "No es un directorio" ) ;
throw new IllegalArgumentException ( "No es un directorio" ) ;
@ -28,31 +28,34 @@ public class tree {
}
}
/ /
/ / CONTROLADOR
/ / Del obj directorio cojemos los elementos y por medio de un For each vemos cual es un directorio o fichero .
private static void printDirectoryTree ( File directorio , int indent , StringBuilder sb ) {
private static void printDirectoryTree ( File directorio , int indent , StringBuilder sb ) {
if ( ! directorio . isDirectory ( ) ) {
if ( ! directorio . isDirectory ( ) ) {
throw new IllegalArgumentException ( "No es un directorio" ) ;
throw new IllegalArgumentException ( "No es un directorio" ) ;
}
}
/ / le metos antes del \ n un / al final del nombre del dic para diferenciar que es un directorio .
sb . append ( getIndentString ( indent ) ) ; sb . append ( "+--" ) ; sb . append ( directorio . getName ( ) ) ; sb . append ( "/" ) ; sb . append ( "\n" ) ;
sb . append ( getIndentString ( indent ) ) ; sb . append ( "+--" ) ; sb . append ( directorio . getName ( ) ) ; sb . append ( "/" ) ; sb . append ( "\n" ) ;
for ( File fichero : directorio . listFiles ( ) ) {
for ( File fichero : directorio . listFiles ( ) ) {
if ( fichero . isDirectory ( ) ) {
if ( fichero . isDirectory ( ) ) {
/ / llamamos a la misma funcion
printDirectoryTree ( fichero , indent + 1 , sb ) ;
printDirectoryTree ( fichero , indent + 1 , sb ) ;
} else {
} else {
printFichero ( fichero , indent + 1 , sb ) ;
printFile ( fichero , indent + 1 , sb ) ;
}
}
}
}
}
}
/ / Por un subdirectorio o fichero que no haya ponemos un espacio ( indent )
/ / Por un subdirectorio o fichero ponermos un + - -
/ / Al final damos un espacio con / n
/ / Por fichero que no haya ponemos un espacio ( indent )
/ / Por fichero ponermos un + - -
/ / Al final damos un espacio con \ n
private static void printFichero ( File fichero , int indent , StringBuilder sb ) {
private static void printFile ( File fichero , int indent , StringBuilder sb ) {
sb . append ( getIndentString ( indent ) ) ; sb . append ( "+--" ) ; sb . append ( fichero . getName ( ) ) ; sb . append ( "\n" ) ;
sb . append ( getIndentString ( indent ) ) ; sb . append ( "+--" ) ; sb . append ( fichero . getName ( ) ) ; sb . append ( "\n" ) ;