Leser: 1
8 Einträge, 1 Seite |
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
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip;
use File::Find;
# Arbeitspfad, diesen ggf. anpassen:
my $pfad = "c:/daten/perl";
# zum angegebenen Pfad wechseln:
chdir $pfad or die "chdir nach '$pfad' nicht moeglich: $!";
# Zip-Objekt erstellen:
my $zip = Archive::Zip->new();
# 2 Programme aus dem Verzeichnis ins Archiv hinzufügen:
$zip->addFile("./port_check.pl");
$zip->addFile("./pack_check.pl");
# Alle Dateien (mit Unterverzeichnissen) in ./Check/ finden:
my @Dateien;
find( sub {push @Dateien, $File::Find::name}, "./Check/" );
# Alle diese Dateien und Verzeichnisse hinzufügen (das erste ist ./Check/):
for (@Dateien) {
if (-d) {
$zip->addDirectory($_);
}
else {
$zip->addFile($_);
}
}
# Archivnamen bestimmen:
my $zipname = 'check_V';
{
open CHECK, './Check/Check.pm' or die "Kann './Check/Check.pm' nicht oeffnen: $!";
my @checkinhalt = <CHECK>;
close CHECK or die "Kann './Check/Check.pm' nicht schliessen: $!";
(my $v) = grep s~^\s*my\s+\$Version\s*=\s*'([.\d]+[a-z]?)'\s*;\s*$~$1~, @checkinhalt;
$zipname .= $v;
}
$zipname .= '.zip';
# Archiv schreiben:
$zip->writeToFileNamed($zipname);
[HRDoomrunner,29.01.2004, 08:17]Gibt es analog dazu auch eine Möglichkeit die Datei wieder zu entpacken?
Quote$zip = Archive::Zip->new();
die 'read error' if $zip->read( 'someZip.zip' ) != AZ_OK;
8 Einträge, 1 Seite |