Listage des fichiers contenue dans un dossier et sous-dossiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 264 fois - Téléchargée 17 fois

Contenu du snippet

Bonjour,

Suite a mon premier programme, je viens d'effectuer le code qui permet de lister tous les fichiers contenue dans le dossier "repertoire" ainsi que dans tous les sous-dossiers.

Source / Exemple :


package PageWeb;

import java.io.*;

public class listerFichier {

    static File[] listeDeFichiersDansDossierEtSousDossier(String repertoire) {
        File directoryToScan = new File(repertoire);
        File[] fichiers = null;
        System.out.println("Repertoire " + repertoire + " chargé.");
//Liste tous les fichiers contenue dans le dossier spécifier :
        fichiers = directoryToScan.listFiles();
        int i = 0;
        while (i < fichiers.length) {
            if (fichiers[i].isDirectory()) {
                //Liste de sauvegarde des fichiers listés avant l'élément actuel
                File[] TempoAvantElement = new File[i];
                //Liste de sauvegarde des fichiers listés apres l'élément actuel
                File[] TempoApresElement = new File[fichiers.length - i];

                //sauvegarde des fichiers listés avant l'element actuel
                for (int j = 0; j < i; j++) {
                    TempoAvantElement[j] = fichiers[j];
                }
                //sauvegarde des fichiers listés apres l'element actuel
                int k = 0;
                for (int j = (i + 1); j < fichiers.length; j++) {
                    TempoApresElement[k] = fichiers[j];
                    k++;
                }
                //liste les fichiers du dossier trouvé
                listerFichier listageDansRepertoire = new listerFichier();
                File[] fichiersTempo = listerFichier.listeDeFichiersDansDossierEtSousDossier(fichiers[i].toString());

                //si dossier n'est pas vide :
                if (fichiersTempo.length != 0){ 
                    //Redimentionnement de l'objet
                    fichiers = new File[TempoAvantElement.length + fichiersTempo.length + TempoApresElement.length - 1];

                    //insertion des elements dans la liste
                    for (int j = 0; j < fichiers.length; j++) {
                        //fichiers listé avant le dossier :
                        if (j < i) {
                            fichiers[j] = TempoAvantElement[j];
                        } //fichier listé dans le dossier :
                        else {
                            if (j < i + fichiersTempo.length) {
                                fichiers[j] = fichiersTempo[j - i];
                            } //fichiers listé apres le dossier :
                            else {
                                fichiers[j] = TempoApresElement[j - i - fichiersTempo.length];
                            }
                        }
                    }
                }
            }
            i++;
        }
        return fichiers;
    }
}

Conclusion :


Il retourne la liste des fichiers par ordre d'arborescence et ordre alphabétique dans l'arborescence.

Voila

Bonne continuation.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
8
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
11 novembre 2009

Merci c'est bien pour un debut!!!
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009

bizarre, j'ai pas pousser les tests mais bon tant que ca marche^^
Messages postés
7
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
8 février 2009

Désolé de t'embeter mais
Ca marche : il n'y a plus d'erreurs et tous les dossiers et les fichiers ont été trouvés.
mais il se trouve que des fois ça affiche un dossier "deux fois"

Par exemple voici ce que ça donne chez moi:

Repertoire D:\Test chargé.
Repertoire D:\Test\1-Testavec chargé.
Repertoire D:\Test\2-testSans chargé.
Repertoire D:\Test\2-testSans\22-TestAvec chargé.
Repertoire D:\Test\2-testSans\23-TestAsans chargé.
Repertoire D:\Test\2-testSans\24-TestAvec chargé.
Repertoire D:\Test\2-testSans\23-TestAsans chargé.
Repertoire D:\Test\3-TestAvec chargé.

ici le dossier "D:\Test\2-testSans\23-TestAsans" revient une seconde fois

Mais bon l'essentiel c'est que ça affiche tout, alors ça me va.
Merci
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009

c'est bon j'ai trouve.
je l'ai remplacer dans le code actuel. la modif est à la ligne 36.
Messages postés
7
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
8 février 2009

Ok!
Afficher les 25 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (kryshnar)