Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1175 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  fonction pour lister les fichiers d'un repertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction pour lister les fichiers d'un repertoire

n°1711146
donny3
Posté le 01-04-2008 à 17:01:50  profilanswer
 

salut,
 
 
J'ai trouver cette fonction pour lister les fichiers
 

Code :
  1. my ($repertoire) = @_;
  2.   my @fichiers = ();
  3.   opendir (my $rep_fh, $repertoire)
  4.     or die "impossible d'ouvrir le repertoire $repertoire\n";
  5.   my @file_rep = grep { !/^\.\.?$/ } readdir($rep_fh);
  6.   closedir ($rep_fh);
  7.  
  8.   foreach my $nom (@file_rep) {
  9.     if ( -f "$repertoire/$nom" ) {
  10.       push (@fichiers, "$repertoire/$nom" ); 
  11.     }
  12.   }
  13.   return @fichiers;


 
mais le truc c'est que je ne comprend pas tres bien la partie apres le grep;
j'ai essayer de la modifier pour ne recuperer dans mon repertoire
que les fichier qui contienne "TNE" et ceux qui ne commence  pas par "hbo" et "hba" mais elle me ramene tous les fichier dans le repertoire;
 
est ce que vous auriez une astuce ?
 
Merci

mood
Publicité
Posté le 01-04-2008 à 17:01:50  profilanswer
 

n°1711149
donny3
Posté le 01-04-2008 à 17:08:04  profilanswer
 

j'ai essayer comme ceci
mais il me retourne tout alors que j 'ai bien fait un grep
foreach my $liste (@listes)
{
if (!grep( /^hbo$/, $liste ) or !grep( /^hba$/, $liste ) or grep( /^TNE$/, $liste ))
{
print "$liste \n";
}
}

n°1711817
Chti Manso​n
Steam: qL
Posté le 02-04-2008 à 23:00:41  profilanswer
 

et comme ça :
 
sub fonction
{
 
open(DOSSIER,"." );
my @entrees = readdir(DOSSIER);
closedir(DOSSIER);
 
edit, et pour ne récupèrer que ce qui t'intéresse tu utilises les regexp
du genre:
 
foreach $entrees (@entrees)
{
 if $entrees =~m/\.extension$/
 
(...)


Message édité par Chti Manson le 02-04-2008 à 23:05:17
n°1718807
gilou
Modérateur
Modzilla
Posté le 16-04-2008 à 20:42:34  profilanswer
 

Les modules IO sont la pour ca (et idem pour Perl6)

Code :
  1. use IO::Dir;


 
Par exemple ici, pour lister les fichiers du repertoire passé en ligne de commande

Code :
  1. #!/usr/bin/perl -w
  2. use warnings;
  3. use strict;
  4. print "$ARGV[0] n'est pas un repertoire\n" and exit unless (-e $ARGV[0] and -d _);
  5. use IO::Dir;
  6. my $d = IO::Dir->new($ARGV[0]);
  7. if (defined $d) {
  8.     while (defined($_ = $d->read)) {
  9.         print $_, "\n" if (-f $_)
  10.     }
  11.     undef $d;
  12. }


A+,

Message cité 1 fois
Message édité par gilou le 16-04-2008 à 21:17:21

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2145670
slewnay
Posté le 13-06-2012 à 11:07:57  profilanswer
 

Bonjour
 
Juste une petite correction du code donnée par gilou car la liste des fichiers n'est pas dans le répertoire courant mais bien dans celui passé en paramètre ($ARGV[0]) :
 

gilou a écrit :

Les modules IO sont la pour ca (et idem pour Perl6)

Code :
  1. use IO::Dir;


 
Par exemple ici, pour lister les fichiers du repertoire passé en ligne de commande

Code :
  1. #!/usr/bin/perl -w
  2. use warnings;
  3. use strict;
  4. print "$ARGV[0] n'est pas un repertoire\n" and exit unless (-e $ARGV[0] and -d _);
  5. use IO::Dir;
  6. my $d = IO::Dir->new($ARGV[0]);
  7. if (defined $d) {
  8.     while (defined($_ = $d->read)) {
  9.         print $_, "\n" if (-f $ARGV[0]."/".$_)
  10.     }
  11.     undef $d;
  12. }


A+,


n°2145754
gilou
Modérateur
Modzilla
Posté le 13-06-2012 à 21:41:24  profilanswer
 

Ou simplement faire un cd $ARGV[0] après avoir effectué la vérification initiale.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  fonction pour lister les fichiers d'un repertoire

 

Sujets relatifs
Générer des fichiers Excel en PHP sur un serveur Linux[PHP] fonction ftp_ pour déplacer un fichier
[C#] Répertoire du projet courant à partir d'une librairie ?passage de l'intérieur d'un tableau par référence dans une fonction ?
[Javascript] héritage entre classe dans des fichiers différentslien entre 2 fichiers excel sous vba
Lister tous les processus en cours d'exécution [Résolu][Ubuntu] Copie automatique de fichiers au branchement clé usb
Fonction pour convertir chaine ASCII en caracteres[RESOLU] lister un répertoire dans l'ordre alphabétique
Plus de sujets relatifs à : fonction pour lister les fichiers d'un repertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR