Obtener los nombres de archivo de todos los archivos de una carpeta [duplicar]


Posible Duplicado:
Leer 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 ?

PD: Estoy en Mac OS X

Author: Community, 2011-04-17

3 answers

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());
  }
}

¿Desea obtener solo archivos JPEG o todos los archivos?

 629
Author: RoflcoptrException,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-24 07:27:23

Crear un File objeto, pasando la ruta del directorio al constructor. Use el listFiles() para recuperar una matriz de objetos 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());
    }
}
 112
Author: Sean Kleinjung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-14 17:59:36

He aquí cómo buscar en la documentación .

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

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

Devuelve una matriz de nombres de ruta abstractos denotando los archivos en el directorio denotado por este nombre de ruta abstracto.

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

 57
Author: Anon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-07 00:34:09