web-dev-qa-db-fra.com

Obtenir les noms de fichiers de tous les fichiers d'un dossier

Duplicate possible:
Lire tous les fichiers d'un dossier

J'ai besoin de créer une liste avec tous les noms des fichiers d'un dossier.

Par exemple, si j'ai:

000.jpg
012.jpg
013.jpg

Je veux les stocker dans un ArrayList avec [000,012,013] comme valeurs.

Quelle est la meilleure façon de le faire dans Java?

PS: je suis sur Mac OS X

380
user680406

Vous pourriez le faire comme ça:

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

Voulez-vous obtenir uniquement les fichiers JPEG ou tous les fichiers?

715
RoflcoptrException

Créez un objet File en passant le chemin du répertoire au constructeur. Utilisez listFiles() pour récupérer un tableau d'objets File pour chaque fichier du répertoire, puis appelez la méthode getName() pour obtenir le nom du fichier.

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

Voici comment regarder dans le documentation .

Premièrement, vous avez affaire à IO, regardez donc dans le Java.iopackage .

Deux classes semblent intéressantes: FileFilter et FileNameFilter . Quand j'ai cliqué sur le premier, il m'a montré qu'il y avait une méthode listFiles() dans la classe File . Et la documentation de cette méthode dit:

Retourne un tableau de chemins d'accès abstraits indiquant les fichiers du répertoire désigné par ce chemin d'accès abstrait.

En défilant dans le File JavaDoc, je vois les constructeurs. Et c’est tout ce dont j'ai besoin pour pouvoir créer une instance File et appeler listFiles(). En faisant défiler encore plus loin, je peux voir quelques informations sur la façon dont les fichiers sont nommés dans différents systèmes d'exploitation.

64
Anon