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
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?
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());
}
}
Voici comment regarder dans le documentation .
Premièrement, vous avez affaire à IO, regardez donc dans le Java.io
package .
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.