Blame examples/calcSizes.pl
|
Packit |
0bf95d |
# Example of how to compute compressed sizes
|
|
Packit |
0bf95d |
# $Revision: 1.2 $
|
|
Packit |
0bf95d |
use strict;
|
|
Packit |
0bf95d |
use Archive::Zip qw(:ERROR_CODES);
|
|
Packit |
0bf95d |
use File::Spec;
|
|
Packit |
0bf95d |
my $zip = Archive::Zip->new();
|
|
Packit |
0bf95d |
my $blackHoleDevice = File::Spec->devnull();
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
$zip->addFile($_) foreach (<*.pl>);
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# Write and throw the data away.
|
|
Packit |
0bf95d |
# after members are written, the writeOffset will be set
|
|
Packit |
0bf95d |
# to the compressed size.
|
|
Packit |
0bf95d |
$zip->writeToFileNamed($blackHoleDevice);
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
my $totalSize = 0;
|
|
Packit |
0bf95d |
my $totalCompressedSize = 0;
|
|
Packit |
0bf95d |
foreach my $member ($zip->members()) {
|
|
Packit |
0bf95d |
$totalSize += $member->uncompressedSize;
|
|
Packit |
0bf95d |
$totalCompressedSize += $member->_writeOffset;
|
|
Packit |
0bf95d |
print "Member ", $member->externalFileName,
|
|
Packit |
0bf95d |
" size=", $member->uncompressedSize,
|
|
Packit |
0bf95d |
", writeOffset=", $member->_writeOffset,
|
|
Packit |
0bf95d |
", compressed=", $member->compressedSize,
|
|
Packit |
0bf95d |
"\n";
|
|
Packit |
0bf95d |
}
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
print "Total Size=", $totalSize, ", total compressed=", $totalCompressedSize,
|
|
Packit |
0bf95d |
"\n";
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
$zip->writeToFileNamed('test.zip');
|