Bonjour,

J'ai un petit programme pour faire le ménage de mes fichiers > que 15 jours mais j'aimerais savoir comment faire pour faire le ménage dans des répertoires et exclure certain répertoire Ex:

J'ai un répertoire qui se nomme:

C:\RAPPORT\DADA et dans DADA j'ai 5 autres répertoires (environ)
C:\RAPPORT\DADA\UNIX
C:\RAPPORT\DADA\WINDOWS
C:\RAPPORT\DADA\P5
C:\RAPPORT\DADA\ZVM
C:\RAPPORT\DADA\VMWARE
Dans C:\RAPPORT\DADA\UNIX j'ai des fichiers html (je veux garder les 15 derniers jours)

Dans C:\RAPPORT\DADA\WINDOWS j'ai des fichiers html (je veux garder les 15derniers jours)

etc... sauf que
Dans C:\RAPPORT\DADA\VMWARE j'ai 3 autres répertoires
C:\RAPPORT\DADA\VMWARE\RAPPORT1
C:\RAPPORT\DADA\VMWARE\RAPPORT2
C:\RAPPORT\DADA\VMWARE\RAPPORT3
et dans C:\RAPPORT\DADA\VMWARE\RAPPORT1 j'ai des fichiers html (je veux garder les 15 derniers jours)

Aussi j'aimerais exclure certain répertoire au besoin (mais pas tout le temps)

Voici un exemple de mon programme mais il ne fait pas tout ce que je viens d'écrire:

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
$P5CUMULJOUR="d:\\p5cumuljour";
$delai=240*60*60;
menage("$P5CUMULJOUR"); 
 
#------------------------------------------------------------------
# Calcul de date pour faire du menage
#------------------------------------------------------------------
sub menage {
my ($dir) = shift;
#
opendir(DIR, $dir) or die erreur ("Impossible ouvrir $dir: $!  voir sub menage"); 
while (defined($file = readdir(DIR))) { 
   if ($file ne "." & $file ne "..") {
#
# Extraire la date de la derniere modification
#
       ($modheure) = (stat("$dir\\$file"))[9];
       $diff = time() - $modheure;
       if ($diff > $delai) {
           unlink("$dir\\$file");
                           } 
                                      }
                                       }
 
         close (DIR);
}