I need the ability to zip a bunch of files using some logic for the archiving. However, due to the fact that these files need to be zipped prior to backing up, I need to validate the files. The plan is to zip the files then loop through all files in the zip and validate the CRC. The problem I am having is that I cannot get the CRC's to match. I am using an example from
here.
I'm using the following sub for validation:
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
use File::Path 'mkpath';
use IO::File;
##
# Zipfile validation
##
my $zipvalidate = Archive::Zip->new();
if ( $zipvalidate->read( $archivedir.$filename ) != 0 ) {
print STDERR "ERROR Opening $archivedir$filename\n";
next;
}
foreach my $member ($zipvalidate->members()){
my $fh = IO::File->new_tmpfile or print "Unable to make ne
+w temp file: $!";
$member->extractToFileHandle($fh);
if ($member->extractToFileHandle($fh) != 0){
print "Error in $archivedir$filename\n";
next;
}
seek($fh, 0, 0);
binmode($fh);
my $buffer;
my $bytesRead;
my $crc = 0;
while ( $bytesRead = $fh->read( $buffer, 32768 ) ) {
$crc = Archive::Zip::computeCRC32( $buffer, $crc );
}
printf( "\nFrom CALC: %08x", $crc );
printf( "\tFrom ZIP: %08x", $member->crc32() );
print "\t";
print $member->fileName();
print "\n";
#undef $fh;
}
}
Any assistance would be greatly appreciated.
Thanks
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.