Thread Archive::Extract -> Entpacken aus, in Ordner (14 answers)
Opened by LukeStriker at 2010-05-05 16:37

LukeStriker
 2010-05-06 16:24
#136886 #136886
User since
2010-04-21
69 Artikel
BenutzerIn
[default_avatar]
Merci hat mir sehr geholfen, falls sich irgendwer mal interessiert hier die Lösung:

Code (perl): (dl )
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
use Archive::Extract;
my @zipdata=&all_data("LOG/","zip","zip"); #Namen der vorhandenen Zipdateien im Ordner LOG
my $zipfile2;
my $count=0;

$Anzzipdata = @zipdata; #Anzahl der zu durchsuchenden Dateien
if($Anzzipdata>1){
        print "\nEs werden $Anzzipdata Zip-Ordner entzippt...";
        }else{
        print "\nEs wird ein Zip-Ordner entzippt...";
}

foreach $zipfile (@zipdata) {
        $zipfile2= "./LOG/$zipfile";
        my $zd = Archive::Extract->new(archive => $zipfile2);
        my $ok = $zd->extract( to => './LOG') || die $zd->error;
        my @file = map{ File::Spec->catfile( $to, $_ ) } @{ $zd->files };
        my @zip = grep (/\.zip$/,@file);
        
        foreach (@zip) {
                $_=substr($_,1,length($_)); #sonst wäre "/DATEINAME"
                @_[$count++]=$_;
        }
        
        if (@_ ne '') {
                foreach (@_) {
                        $zipfile3 = "./LOG/$_"; #foreach-Schleife zum entfernen des / kann man löschen wenn man hier nach dem "LOG" kein "/" angibt 
                        my $zd2 = Archive::Extract->new(archive => $zipfile3);
                        my $ok = $zd2->extract( to => './LOG') || die $zd2->error;
                }
        }
}       
print " erfolgreich\n";


P.S.:
- all_data, Sub welches den gewünschten Dateityp heraussucht
- ich weiß das der Code nicht sauber geschrieben ist ;)
Last edited: 2010-05-06 16:27:38 +0200 (CEST)

View full thread Archive::Extract -> Entpacken aus, in Ordner