Salut !
J'ai un petit souci pour lire tous les fichiers d'un répertoire et les fichiers des sous-répertoires de ce dernier. J'ai un bout de code qui fonctionne pour un répertoire que j'ai complété pour faire une recherche récursive sur les sous-répertoires, mais voilà, ça fonctionne pour le niveau 1 mais pas pour le niveau 2...
Avec l'arborescence suivante :
Perl -> Nortel -> Javascript
|-> Athd -> Javascript
Dans chaque répertoire, il ya des fichiers (librairies).
J'arrive bien à lister les répertoires 'Nortel' et 'Athd' (sous 'Perl') mais pas les sous répertoires de ceux-ci à savoir les répertoires 'Javascript'.
Voici mon code :
Si quelqu'un à une idée...
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #!/usr/bin/perl use strict; my $nb_arg = @ARGV; if (($nb_arg > 1) or ($nb_arg <1)) { print "\nNombre d'arguments incorrect."; exit(1); } my $dir = $ARGV[0]; ListRep($dir); sub ListRep { my ($dir) = @_; if (! -e $dir ) { print "Répertoire inconnu ($dir)."; return undef; } if (! -d $dir ) { print "$dir n'est pas un répertoire."; return undef; } if (! opendir( DIR, $dir) ) { print "Impossible d'ouvrir le répertoire $dir : $!."; return undef; } my @files = grep !/(?:^\.$)|(?:^\.\.$)/, readdir DIR; closedir DIR; print "\nFICHIERS CONTENUS:\n"; foreach(@files) { print $_."\n"; } foreach(@files) { if (-d $_) { print "\n\nREPERTOIRE : ".$_."\n"; ListRep($_); } } } 1;







Répondre avec citation


Partager