IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

liste récursive des fichiers d'un dossier dans une liste


Sujet :

Langage Java

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut liste récursive des fichiers d'un dossier dans une liste
    Bonjour a tous

    je vais probablement me faire huer mais tant pis

    Je voudrais réutiliser ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public static void listeRepertoire ( File repertoire ) {
            System.out.println ( repertoire.getAbsolutePath());
     
            if ( repertoire.isDirectory ( ) ) {
                    File[] list = repertoire.listFiles();
                    if (list != null){
    	                for ( int i = 0; i < list.length; i++) {
    	                        // Appel récursif sur les sous-répertoires
    	                        listeRepertoire( list[i]);
    	                } 
                    } else {
                    	System.err.println(repertoire + " : Erreur de lecture.");
                    }
            } 
    }
    afin de parcourir récursivement une arborescence de fichiers et afficher (sur la sortie standard) la liste de tous les fichiers contenus dans le répertoire et ses sous-répertoires.

    Je voudrais modifier légèrement ce code pour pouvoir récupérer la liste des fichiers dans une List<String> mais j'éprouve quelques difficultés malheureusement.

    Merci beaucoup de m'indiquer une piste

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ta liste doit être passée en paramètre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    je vais probablement me faire huer mais tant pis
    J'adore, ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Ta liste doit être passée en paramètre.
    Exact.
    A cause de la récursivité, tu n'as pas le choix.

    Ensuite ton code fait quasiment tout
    Il faut juste gérer le cas ou le chemin n'est pas un répertoire et dans ce cas l'ajouter à la liste.
    J'ai changé le nom du paramètre (path au lieu de répertoire puisque ca prend soit des fichiers soit des repertoires)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
       public static void main(String[] args) {
    	ArrayList<String> allFiles = new ArrayList<String>();
    	listeRepertoire(new File("CheminVersLeDossierAAnalyser"), allFiles);
        }
     
        public static void listeRepertoire(File path, List<String> allFiles) {
     
    	if (path.isDirectory()) {
    	    File[] list = path.listFiles();
    	    if (list != null) {
    		for (int i = 0; i < list.length; i++) {
    		    // Appel récursif sur les sous-répertoires
    		    listeRepertoire(list[i], allFiles);
    		}
    	    } else {
    		System.err.println(path + " : Erreur de lecture.");
    	    }
    	} else {
    	    String currentFilePath = path.getAbsolutePath();
    	    System.out.println(currentFilePath);
    	    allFiles.add(currentFilePath);
    	}
        }

Discussions similaires

  1. [Python 3.X] [Tkinter] Afficher la liste des fichiers d'un dossier dans une fenêtre.
    Par niduab dans le forum Tkinter
    Réponses: 20
    Dernier message: 26/08/2014, 18h37
  2. récupérer la liste des fichiers d'un dossier dans un fichier texte
    Par mathieu_r dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 26/04/2009, 19h47
  3. [ksh] Liste récursive des fichiers, au format CSV
    Par Neuromancien2 dans le forum Linux
    Réponses: 2
    Dernier message: 19/02/2008, 23h41
  4. Réponses: 4
    Dernier message: 11/07/2007, 19h28
  5. Nomer une liste a partir d'un nom pris dans une liste
    Par leau2001 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/05/2006, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo