next up previous contents
suivant: Obtenir le répertoire courant monter: Opérations sur répertoires précédent: Opérations sur répertoires   Table des matières

Lire le contenu d'un répertoire

Utiliser les fonctions d'accés aux répertoires :

#!/usr/local/bin/perl

use strict;
my $dir = $ARGV[0];

if($dir eq "")
{
        $dir = ".";
}

opendir(DIR,$dir) or die $!;
my @tab = readdir(DIR);
closedir(DIR);

foreach my $file(@tab)
{
        if($file ne "." and $file ne "..")
        {
                print "$file\n";
        }
}

Retourne les fichiers présents dans le répertoire donné en option ou par défaut du répertoire courant. Notons que readdir retourne tous les fichiers et ne retourne pas le répertoire dans le nom du fichier.

Pour des scripts rapides fait, on pourra utiliser une solution plus simple, bien que moins propre :

#!/usr/local/bin/perl

use strict;
my $dir = $ARGV[0];

if($dir eq "")
{
        $dir = ".";
}


while(my $file = <$dir/*>)
{
        print $file."\n";
}

Retourne par contre le nom absolu du fichier et ne retourne pas les fichiers commençant par un « . » .

Plus d'informations dans la documentation de Perl :



Stephane TOUGARD 2002-09-07