• 🏠 Accueil
  • 🧰 Générateurs
  • 📰 Blog
  • 🔎 Rechercher
  • 📧 Contact
  • 📘 Livre d'or
  • 🗞️ News
  • 💰 Soutien
  • ℹ️ Info : Le site a été modernisé pour être plus lisible et compatible avec les smartphones. N'hésitez pas à me signaler tout bug via le formulaire de contact.

    Programmation Perl - Lister récursivement un répertoire


    Cette fonction va parcourir tout le contenu d'un répertoire en mode récursif, et renvoyer dans un tableau la liste de tous les fichiers trouvés et leurs chemins.

    Le code

    #
    # GetFilesList - Renvoie la liste des fichiers d'un repertoire (en mode recursif)
    #
    sub GetFilesList
    {
            my $Path = $_[0];
            my $FileFound;
            my @FilesList=();
    
            # Lecture de la liste des fichiers
            opendir (my $FhRep, $Path)
                    or die "Impossible d'ouvrir le repertoire $Path\n";
            my @Contenu = grep { !/^\.\.?$/ } readdir($FhRep);
            closedir ($FhRep);
    
            foreach my $FileFound (@Contenu) {
                    # Traitement des fichiers
                    if ( -f "$Path/$FileFound") {
                            push ( @FilesList, "$Path/$FileFound" );
                    }
                    # Traitement des repertoires
                    elsif ( -d "$Path/$FileFound") {
                            # Boucle pour lancer la recherche en mode recursif
                            push (@FilesList, GetFilesList("$Path/$FileFound") );
                    }
    
            }
            return @FilesList;
    }
    
    #
    # Boucle principale
    #
    my @Files = GetFilesList ("/home/jerome/Documents/");
    foreach my $File  (@Files) {
    	print "$File\n";
    }
    

     

    Retour


    (c) 2005-2025 Jérôme DESMOULINS
    Mentions légales