Bonjour à tous;

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
my $pDirectory;
my $path =  "P:/Theorie/PCR_Bact_Hybridation/Fichiers_FASTA_74_79";
opendir ($pDirectory,$path)
or die ("Directory ".$path." can't be open!\n");
my @Directory_list = readdir($pDirectory);
closedir ($pDirectory);
 
foreach my $Bact (@Directory_list)
{
        if($Bact=~/\w*_\w*_\w*/)
        {
                my $psubDirectory;
                my $subpath =  "P:/Theorie/PCR_Bact_Hybridation/Fichiers_FASTA_74_79/$Bact";
                opendir ($psubDirectory,$subpath) or die ("Directory ".$subpath." can't be open!\n");
                my @subDirectory_list = readdir($psubDirectory);
                closedir ($psubDirectory);
 
                foreach my $Sonde (@subDirectory_list)
                {...
Dans le répertoire 'P:/Theorie/PCR_Bact_Hybridation/Fichiers_FASTA_74_79', j'ai une série de répertoires '$Bact' contenant chacun une série de fichiers $Sonde.fsa.

Je récupère la liste de mes répertoires dans @Directory_list et ensuite si c'est un répertoire (vérifié par /\w*_\w*_\w*/), je l'ouvre et j'y récupère les fichiers à analyser.

J'ai deux questions :
1) au lieu de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if($Bact=~/\w*_\w*_\w*/)
j'amerais faire
afin de vérifier plus proprement que $Bact soit bien un répertoire et non un fichier. Mais de cette façon, je ne récupère que '.' et '..' et non les répertoires que j'aimerais utiliser.
=> 'P:/Theorie/PCR_Bact_Hybridation/Fichiers_FASTA_74_79' contient des fichiers qui ne doivent pas être utiliser et une série de répertoires devant tous être récupérés.


2) Mes boucles ne fonctionne pas car en plus de mes noms de fichiers, je récupère les répertoires racines '.' et '..'. Comment puis-je faire afin de les supprimer de ma liste.


Donc en résumé, ce que j'aimerais faire c'est récupérer tous les fichiers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
my @liste = glob('P:/Theorie/PCR_Bact_Hybridation/Fichiers_FASTA_74_79/*/*.fsa');
en utilisant opendir car je dois garder les noms de mes répertoires.

Merci beaucoup,

Jasmine,