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