Thread Problem mit Digest::CRC
(7 answers)
Opened by bianca at 2011-08-08 18:58
CRC32 von Archive::Zip macht bei einer Videodatei von 450 MByte ca. 2 Sekunden für die Prüfsumme.
Code (perl): (dl
)
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 #!/usr/bin/perl # Computes and prints to stdout the CRC-32 values of the given files use strict; use lib qw( blib/lib lib ); use Archive::Zip; use FileHandle; my $totalFiles = scalar(@ARGV); foreach my $file (@ARGV) { if ( -d $file ) { warn "$0: ${file}: Is a directory\n"; next; } my $fh = FileHandle->new(); if ( !$fh->open( $file, 'r' ) ) { warn "$0: $!\n"; next; } binmode($fh); my $buffer; my $bytesRead; my $crc = 0; while ( $bytesRead = $fh->read( $buffer, 32768 ) ) { $crc = Archive::Zip::computeCRC32( $buffer, $crc ); } printf( "%08x", $crc ); print("\t$file") if ( $totalFiles > 1 ); print("\n"); } Last edited: 2011-08-08 19:35:22 +0200 (CEST) |