Lister les fichiers et les dossiers à partir d'un répertoire

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

 
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour14/08/2010
VisualisationVu 1905 fois
PublicInternaute
CategorieJAVA - Sources - Systeme
Auteur de l'article
fobec fobec
connecté le 06/12/2012
37 ans - France Nord-Est
104 articles dans la section
Contacter l'auteur
Partager l'article