Java - no pasa por el else....listar nº de ficheros

 
Vista:

no pasa por el else....listar nº de ficheros

Publicado por goku (2 intervenciones) el 05/03/2005 12:52:18
Hola, tengo el siguiente código:
import java.io.File;
class Dirlist {
public static void main(String args[]) {
String dirname = "c:/Curso";
File f1 = new File(dirname);
System.out.println("Directorio de " + dirname);
String s[] = f1.list();
for (int y = 0; y < s.length; y++) {
if (f1.isDirectory()){
System.out.println(s[y] + " es un directorio");
}else{
if (f1.isFile()){
System.out.println(s[y] + " es un fichero");
}
}
}
}
}
No ejecuta bien el if ya que en el directorio curso tengo un subdirectorio "temario" y un fichero "index.txt" y dentro de "temario" tengo "index1.htm","index2,htm", al ejecutarlo me dice que temario es un directorio y que index.txt es un directorio....y no es cierto, es decir, no pasa por el else...a que puede ser debido?
Quisera también que me contase cuantos ficheros hay dentro de curso, es decir, habría 3 (2 dentro de temario y uno fuera)...¿cómo podría hacerlo? y solucionar lo del else?
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

RE:no pasa por el else....listar nº de ficheros

Publicado por chuidiang (532 intervenciones) el 05/03/2005 22:54:32
Hola:

f1 es new File ("c:/Curso")

y es un directorio. Mientras no hagas un f1 = new File (otra cosa), f1 seguirá siendo un directorio, así que siempre que te metas en el if de f1.isDirectory() te dirá que lo es.

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

RE:no pasa por el else....listar nº de ficheros

Publicado por ryudoo (30 intervenciones) el 06/03/2005 16:56:50
Claro que no pasa ya que siempre preguntas por el objeto f1 y este objeto es un directorio (File f1 = new File("c:/curso")), en vez de crear un arreglo de String y usar f1.list(), mejor crea un arreglo de File y usa f1.listFile()...

public class Dirlist {

public static void main(String args[]) {
String dirname = "c:\\Curso";
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()){
System.out.println(s[y] + " es un directorio");
}
else{
if (s[y].isFile()){
System.out.println(s[y] + " es un fichero");
}
}
}
}
}
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

RE:no pasa por el else....listar nº de ficheros

Publicado por goku (2 intervenciones) el 07/03/2005 10:54:05
Gracias amigo por tu ayuda....ya entiendo....pero sigo con un problema y es que no sé como hacer para que si le paso un directorio y éste directorio contiene subdirectorios y ficheros dentro de los subdirectorios me los liste o cuente el tamaño, es decir:
curso
leccion1---subdirectorio
index1.htm---Fichero
index2.htm---Fichero
material.htm

curso es un directorio del que cuelgan el subdirectorio leccion1 y el fichero material.htm, del subdirectirio leccion1 cuelgan los ficheros index1.htm e index2.htm
Lo que quiero hacer es que si le paso el directorio curso, me liste o cuente el numero de ficheros que contiene todo lo que hay dentro de curso (incluyendo subdirectios)

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