web-dev-qa-db-fra.com

Comment parcourir les fichiers d'un répertoire en Java?

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?

97
John Assymptoth

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.
  }
168
Mike Samuel

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"}

32
jomaora

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]);
        }
    }
}
9
WuHoUnited

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

5
Amol Katdare