Bonjour,
J'ai un problème avec le script que je suis entrain d'écrire.
Je dois dézipper une série de fichier "daily_econtrat1.zip, daily_econtrat2.zip etc etc"
Dans la plupart de ces archives, il y a un fichier log, mais dans certaines il y a plusieurs autres archives qui contiennent un fichier log chacun.
Je vous mets déjà ce que j'ai effectué :
j'ai réussi à voir dans @files la liste des fichiers à l’intérieur des archives (il me ressort donc des .log et des .zip) Mais comme vous le voyez la méthode "unzip" s'applique uniquement au zip ciblé. Je ne sais pas comment utiliser unzip sur les membres si il y a des archives à l’intérieur. Quelqu'un aurait 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 use strict;use warnings; use IO::Uncompress::Unzip qw(unzip $UnzipError) ; use File::Find; use Archive::Zip qw/ :ERROR_CODES :CONSTANTS /; my $n = 0; sub recherche { if (-f){++$n if $File::Find::name =~ /\.zip/;} } find(\&recherche,"C:\\tests\\logs\\Securitas\\"); $n += 10; my $econtrat_zip = ''; my $econtrat_log = ''; my $i = 0; my $zip = Archive::Zip->new(); for ($i; $i < $n; $i++){ $econtrat_zip = 'C:\\tests\\logs\\Securitas\\daily_econtrat_log' . $i . '.zip'; $econtrat_log = 'C:\\tests\\logs\\Securitas\\daily_econtrat_log' . $i . '.log'; unless ( $zip->read( $econtrat_zip ) == AZ_OK ) { die 'read error'; } my @files = $zip->memberNames(); unzip $econtrat_zip => $econtrat_log || die "Decompression impossible"; #Décompression #unlink $econtrat_zip; }
Partager