read print new listfiles how from files current contents all java file folder filenames

java - print - Obtención de los nombres de archivo de todos los archivos en una carpeta



new file java current directory (3)

Posible duplicado:
Lee todos los archivos en una carpeta

Necesito crear una lista con todos los nombres de los archivos en una carpeta.

Por ejemplo, si tengo:

000.jpg 012.jpg 013.jpg

Quiero almacenarlos en un ArrayList con [000,012,013] como valores.

¿Cuál es la mejor manera de hacerlo en Java?

PS: estoy en Mac OS X


Cree un objeto File , pasando la ruta del directorio al constructor. Use listFiles() para recuperar una matriz de objetos de File para cada archivo en el directorio, y luego llame al método getName() para obtener el nombre del archivo.

List<String> results = new ArrayList<String>(); File[] files = new File("/path/to/the/directory").listFiles(); //If this pathname does not denote a directory, then listFiles() returns null. for (File file : files) { if (file.isFile()) { results.add(file.getName()); } }


He aquí cómo buscar en la documentation .

Primero, estás tratando con IO, así que busca en el package java.io

Hay dos clases que parecen interesantes: FileFilter y FileNameFilter . Cuando hice clic en el primero, me mostró que había un método listFiles() en la clase File . Y la documentación para ese método dice:

Devuelve una matriz de rutas de acceso abstractas que denotan los archivos en el directorio indicado por esta ruta de acceso abstracta.

Desplazándome hacia arriba en el File JavaDoc, veo los constructores. Y eso es todo lo que necesito para poder crear una instancia de File y llamar a listFiles() en él. Continuando aún más, puedo ver información sobre cómo se nombran los archivos en diferentes sistemas operativos.


Podrías hacerlo así:

File folder = new File("your/path"); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].isFile()) { System.out.println("File " + listOfFiles[i].getName()); } else if (listOfFiles[i].isDirectory()) { System.out.println("Directory " + listOfFiles[i].getName()); } }

¿Quieres obtener solo archivos JPEG o todos los archivos?