Duplicata possible :
Meilleur moyen d'itérer dans un répertoire en java ?
Je veux traiter chaque fichier dans un certain répertoire, en Java.
Quelle est la manière la plus simple (et la plus courante) de procéder ?
Duplicata possible :
Meilleur moyen d'itérer dans un répertoire en java ?
Je veux traiter chaque fichier dans un certain répertoire, en Java.
Quelle est la manière la plus simple (et la plus courante) de procéder ?
Si vous avez le nom du répertoire dans myDirectoryPath
,
import java.io.File;
...
File dir = new File(myDirectoryPath);
File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
// Do something with child
}
} else {
// Handle the case where dir is not really a directory.
// Checking dir.isDirectory() above would not be sufficient
// to avoid race conditions with another process that deletes
// directories.
}
Je suppose qu'il y a tellement de façons de faire ce que l'on veut. Voici une méthode que j'utilise. Avec la bibliothèque commons.io, vous pouvez itérer sur les fichiers d'un répertoire. Vous devez utiliser la méthode FileUtils.iterateFiles et vous pouvez traiter chaque fichier.
Vous pouvez trouver l'information ici http://commons.apache.org/io/api-release/index.html
Voici un exemple :
Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false);
while(it.hasNext()){
System.out.println(((File) it.next()).getName());
}
vous pouvez changer null et mettre une liste d'extensions si vous voulez filtrer. Exemple {".xml", ".java"}
Voici un exemple qui liste tous les fichiers sur mon bureau. Vous devez changer la variable path pour votre chemin.
Au lieu d'imprimer le nom du fichier avec System.out.println, vous devez placer votre propre code pour opérer sur le fichier.
public static void main(String[] args) {
File path = new File("c:/documents and settings/Zachary/desktop");
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){ //this line weeds out other directories/folders
System.out.println(files[i]);
}
}
}
Utilisez java.io.File.listFiles
Ou
Si vous voulez filtrer la liste avant l'itération (ou tout autre cas d'utilisation plus compliqué), utilisez apache-commons FileUtils. FileUtils.listFiles
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.