Java - NO me recorre los subdirectorios

 
Vista:

NO me recorre los subdirectorios

Publicado por terra (2 intervenciones) el 11/03/2005 12:34:51
No soy capaz de hacer que me recorra los ficheros dentro de subdirectorios. Tengo el siguiente código:

import java.io.*;
public class dirlistado {
public static void main(String args[]) {
int Totalficheros=0;
int Totaldirectorios=0;
int Totalkbytes=0;
String dirname;

if(args.length>0){
dirname=args[0];
} else {
dirname = ".";
}
File f1 = new File(dirname);
System.out.println("Directorio de " + dirname);
File s[] = f1.listFiles();

for (int y = 0; y < s.length; y++) {
if (s[y].isDirectory()){

Totaldirectorios++;
System.out.println(s[y] + " es un directorio");
System.out.println(s[y].isDirectory());
}
else{
if (s[y].isFile()){
Totalficheros++;
Totalkbytes+=s[y].length();
System.out.println(s[y] + " es un fichero");
}
}
}
System.out.println("hay "+ Totalficheros +" ficheros");
System.out.println("ocupan "+ Totalkbytes +" kbytes");
System.out.println("hay "+ Totaldirectorios +" subdirectorios");
}
}
Hace que pasándole un directorio por parámetro me cuente y liste el nombre de los ficheros y su tamaño, el problema es que no funciona cuando dentro del directorio hay un subdirectorio y éste subdirectorio contiene ficheros....¿cómo puedo hacer para que me cuente tanto los ficheros que están dentro de un subdirectorio como los que están fuera?, es decir, que me recorrar recursivamente los directorios?
Gracias.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:NO me recorre los subdirectorios

Publicado por Yamil Bracho (2315 intervenciones) el 11/03/2005 15:03:45
Tu mismo te has respondido. Debes hacer un metodo recursivo que le pases como parametro el directorio y este tome los archivos de ese directorio. Si hay alguno que sea un directorio llamas al metodo pasandole como parametro este nuevo directorio.
Antes que nada debes mover el codigo que tienes en el main a un metodo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar