Comment itérer les fichiers D'un certain répertoire, en Java? [dupliquer]
possibilité de dupliquer:
la meilleure façon d'itérer à travers un répertoire en java?
je veux traiter chaque fichier dans un certain répertoire en utilisant Java.
Quelle est la façon la plus facile (et la plus courante) de le faire?
4 réponses
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 itérer 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/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 mettez une liste de extentions si vous voulez filtrer. Exemple: {".xml",".java"}
Voici un exemple qui répertorie tous les fichiers sur mon bureau. vous devriez changer la variable path vers votre chemin.
au lieu d'imprimer le nom du fichier avec le système.hors.println, vous devriez 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]);
}
}
}
Utiliser de java.io.Fichier.listFiles
Ou
si vous voulez filtrer la liste avant itération (ou tout autre cas d'utilisation plus compliqué), utilisez apache-commons FileUtils. FileUtils.listFiles