Duplicate possible:
Le meilleur moyen de parcourir un répertoire en java?
Je veux traiter chaque fichier dans un certain répertoire en utilisant Java.
Quel est le moyen le plus simple (et le plus courant) 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 vous voulez. Voici un moyen que j'utilise. Avec la bibliothèque commons.io
, vous pouvez parcourir les fichiers d’un répertoire. Vous devez utiliser la méthode FileUtils.iterateFiles
et vous pouvez traiter chaque fichier.
Vous pouvez trouver les informations ici: http://commons.Apache.org/proper/commons-io/download_io.cgi
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 répertorie tous les fichiers sur mon bureau. vous devriez changer la variable de chemin en votre chemin.
Au lieu d'imprimer le nom du fichier avec System.out.println, vous devez placer votre propre code pour qu'il fonctionne 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 souhaitez filtrer la liste avant l'itération (ou tout autre cas d'utilisation plus compliqué), utilisez Apache-commons FileUtils. FileUtils.listFiles