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.
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


0