File: calcSizes.pl

package info (click to toggle)
libarchive-zip-perl 1.14-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 548 kB
  • ctags: 317
  • sloc: perl: 3,369; makefile: 45
file content (31 lines) | stat: -rw-r--r-- 876 bytes parent folder | download | duplicates (5)
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
# Example of how to compute compressed sizes
# $Revision: 1.2 $
use strict;
use Archive::Zip qw(:ERROR_CODES);
use File::Spec;
my $zip = Archive::Zip->new();
my $blackHoleDevice = File::Spec->devnull();

$zip->addFile($_) foreach (<*.pl>);

# Write and throw the data away.
# after members are written, the writeOffset will be set
# to the compressed size.
$zip->writeToFileNamed($blackHoleDevice);

my $totalSize = 0;
my $totalCompressedSize = 0;
foreach my $member ($zip->members())
{
	$totalSize += $member->uncompressedSize;
	$totalCompressedSize += $member->_writeOffset;
	print "Member ", $member->externalFileName,
	" size=", $member->uncompressedSize,
	", writeOffset=", $member->_writeOffset,
	", compressed=", $member->compressedSize,
	"\n";
}

print "Total Size=", $totalSize, ", total compressed=", $totalCompressedSize, "\n";

$zip->writeToFileNamed('test.zip');