Listage des fichiers contenue dans un dossier et sous-dossiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 115 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

sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11 -
lol dommage que t'ai pas garde l'idee de pattern pour les fichiers, c'est ce qui faisait que ta source etait interressante :P
kryshnar
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009
-
j'ai jamais utiliser les pattern...
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11 -
le match :(?i)blabla.*" => fichier commençant par "blabla"
Desole je bosse a cote et je m'emmele les pinceaux
kryshnar
Messages postés
44
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
26 février 2009
-
lol
cs_petifa
Messages postés
215
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
10 mars 2014
-
slt,
pourquoi ne pas avoir mis cette fonction avec ton autre source pour chercher un fichier, a vrai dire lister les dossier et sous dossier si tu mettais la possibilité de rechercher en même temps; ça deviendrai intéressant. Et tu pourrais faire un "pannel" de fonctions
sinon pour ton code tu te complique vraiment la vie, ton code n'est vraiment pas optimisé, que ce soit question mémoire (tu alloues des tableau et les réalloue par la suite, utilise des tableau temporaires....)
Pourquoi ne pas retourner un Arraylist de File, ça serait bien plus pratique comme ça met les éléments à la queue leu leu et et les éléments de chaque sous dossier, en utilisant la récursivité.

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)