Thread Archive::Extract -> Entpacken aus, in Ordner
(14 answers)
Opened by LukeStriker at 2010-05-05 16:37
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) |