Thread Archive::Zip legt Verzeichnisse nochmal als 0-Byte-Dateien an (7 answers)
Opened by bianca at 2016-01-12 11:32

bianca
 2016-01-12 15:48
#183490 #183490
User since
2009-09-13
6978 Artikel
BenutzerIn

user image
Interessanterweise kann ich jetzt im Testgebiet auch den Fehler mit den 0-Byte Dateien reproduzieren. Und zwar ging das ab dem ersten mal wo ich mit Zeile $Archive::Zip::UNICODE = 1; teste. Inzwischen kommen die 0-Byte-Dateien nun immer, egal ob mit oder ohne dieser Zeile.

Dein Vorschlag sieht also jetzt inklusive des urspr. Fehlers so aus.
Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
if ($^O =~ /mswin/i) { $Archive::Zip::UNICODE = 1; }

my @verzeichnisse = ('/webserver/homepage1/verz2','/webserver/homepage1/verz4');
my $zip = Archive::Zip->new();
while (scalar @verzeichnisse) {
    my $verz = shift @verzeichnisse;
    $zip->addTree($verz,substr($verz,1),undef,COMPRESSION_LEVEL_BEST_COMPRESSION);
    if ($zip->writeToFileNamed("/webserver/homepage1/zipziel/zip.zip") != AZ_OK) {
        die "Kann ZIP '/webserver/homepage1/zipziel' nicht schreiben";
    }
}

Struktur (unverändert):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
└───homepage1
├───verz1
│ │ abc.txt
│ │ def.txt
│ │
│ └───unterverz11
├───verz2
│ │ ghi.txt
│ │ jkl.txt
│ │
│ └───unterverz21
├───verz3
│ │ mno.txt
│ │ pqr.txt
│ │
│ └───unterverz31
├───verz4
│ │ stu.txt
│ │ vwx.txt
│ │
│ └───unterverz41
└───zipziel
zip.zip

Ergebnis siehe 3 Screens anbei.
Anhänge
image/png
449 x 132
archive_zip_2.png
archive_zip_2.png
image/png
477 x 114
archive_zip_3.png
archive_zip_3.png
image/png
471 x 114
archive_zip_4.png
archive_zip_4.png
10 print "Hallo"
20 goto 10

View full thread Archive::Zip legt Verzeichnisse nochmal als 0-Byte-Dateien an