Я видел похожий пост, но у меня не та проблема. Я пытаюсь вызвать функцию, которая показывает имена файлов, пронумерованных как
1- File1.txt,
2- File2.txt
..
. Это работает, как и ожидалось. Проблема в том, что мне нужно вернуть путь к этим файлам в другом массиве. Когда я System.out.print(arrayRutasFicheros[j])
внутри for
, он показывает все пути правильно. Но когда я пытаюсь получить доступ к arrayRutasFicheros[j]
из других функций. Он просто переписывает все пути и показывает только последний.
public static String[] listarArchivos() throws IOException{
File[] listadoDeFiles = documento.listFiles();
File[] arrayFicheros = null;
String[] arrayRutasFicheros = null;
if(documento.exists() ) {
for (int k=0; k< listadoDeFiles.length ;k++) {
File ficheroRuta = listadoDeFiles[k];
File fichero = new File(documento.getPath() + sep+ ficheroRuta.getName());
if(fichero.isFile()==true) {
arrayFicheros =new File[] {fichero};
System.out.println( k + " - " + ficheroRuta.getName());
for(int j= 0; j<arrayFicheros.length; j++) {
arrayRutasFicheros = new String[] {arrayFicheros[j].getPath()};
//here it works and it display all the path
System.out.println(arrayRutasFicheros[j]);
}
}
}
}
return arrayRutasFicheros;
}
public static muestraUnArchivo() throws IOException {
String [] Fichero =listarArchivos();
for(int k=0; k<Fichero.length; k++) {
//here just the last one
System.out.print(Fichero[k]);
}
}
Ожидается:
-E:\Eclipse\Files\File1.txt
-E:\Eclipse\Files\File2.txt
-E:\Eclipse\Files\File3.txt
Вывод:
-E:\Eclipse\Files\File3.txt