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');