⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unzip

📁 source of perl for linux application,
💻
字号:
use strict;use warnings;use File::Path;use File::Basename;use IO::File;use IO::Uncompress::RawInflate qw(:all);die "Usage: zipcat file\n"     if @ARGV != 1 ;my $file = $ARGV[0] ;my $fh = new IO::File "<$file"            or die "Cannot open '$file': $!\n";while (){    my $FIXED_HEADER_LENGTH  = 30 ;    my $sig;    my $buffer;    my $x ;    ($x = $fh->read($buffer, $FIXED_HEADER_LENGTH)) == $FIXED_HEADER_LENGTH         or die "Truncated file top: $x $!\n";    my $signature = unpack ("V", substr($buffer, 0, 4));    last unless $signature == 0x04034b50;    my $compressedMethod   = unpack ("v", substr($buffer, 8, 2));    my $compressedLength   = unpack ("V", substr($buffer, 18, 4));   #my $uncompressedLength = unpack ("V", substr($buffer, 22, 4));    my $filename_length    = unpack ("v", substr($buffer, 26, 2));     my $extra_length       = unpack ("v", substr($buffer, 28, 2));    warn "Compressed Length $compressedLength\n";    my $filename ;    $fh->read($filename, $filename_length) == $filename_length         or die "Truncated file\n";    $fh->read($buffer, $extra_length) == $extra_length        or die "Truncated file\n";    if ($compressedMethod != 8 && $compressedMethod != 0)    {        warn "Skipping file '$filename' - not deflated $compressedMethod\n";        $fh->read($buffer, $compressedLength) == $compressedLength            or die "Truncated file\n";        next;    }    next if $compressedLength == 0;    warn "Writing file '$filename' $compressedMethod\n";    #mkpath dirname $filename;    #rawinflate $fh  => $filename,    rawinflate $fh  => '-',        Transparent => 1,        InputLength => $compressedLength      or die "Error uncompressing $file [$filename]: $RawInflateError\n"  ;}sub decodeLocalFileHeader{    my $buffer = shift ;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -