Comment explorer le contenu d'un dossier ? L'objet
File dispose des fonctions List() et ListFiles() pour lister les fichiers et les dossiers d'un répertoire.
DiskFileExplorer est un exemple pour parcourir un répertoire, y compris les sous-dossiers (méthode récursive) pour lister son contenu.
import java.io.File;
/**
* Lister le contenu d'un répertoire
* @author fobec 2010
*/
public class DiskFileExplorer {
private String initialpath = "";
private Boolean recursivePath = false;
public int filecount = 0;
public int dircount = 0;
/**
* Constructeur
* @param path chemin du répertoire
* @param subFolder analyse des sous dossiers
*/
public DiskFileExplorer(String path, Boolean subFolder) {
super();
this.initialpath = path;
this.recursivePath = subFolder;
}
public void list() {
this.listDirectory(this.initialpath);
}
private void listDirectory(String dir) {
File file = new File(dir);
File[] files = file.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory() == true) {
System.out.println("Dossier" + files[i].getAbsolutePath());
this.dircount++;
} else {
System.out.println("Fichier" + files[i].getName());
this.filecount++;
}
if (files[i].isDirectory() == true && this.recursivePath == true) {
this.listDirectory(files[i].getAbsolutePath());
}
}
}
}
/**
* Exemple : lister les fichiers dans tous les sous-dossiers
* @param args
*/
public static void main(String[] args) {
String pathToExplore = "C:\\temp";
DiskFileExplorer diskFileExplorer = new DiskFileExplorer(pathToExplore, true);
Long start = System.currentTimeMillis();
diskFileExplorer.list();
System.out.println("----------");
System.out.println("Analyse de " + pathToExplore + " en " + (System.currentTimeMillis() - start) + " mses");
System.out.println(diskFileExplorer.dircount + " dossiers");
System.out.println(diskFileExplorer.filecount + " fichiers");
}
}