免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1296 | 回复: 0
打印 上一主题 下一主题

Perl动态建立ZIP压缩文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-30 00:46 |只看该作者 |倒序浏览

                                Perl可以通过Archive::Zip模块,动态建立和阅读ZIP压缩文件,而不必依赖外来工具和实用工具。
首先安装该模块,比较耗时间,
cpan Archive::Zip
1,建立ZIP压缩文件
脚本如下:#!/usr/bin/perl
use strict;use warnings;use Archive::Zip qw( :ERROR_CODES :CONSTANTS );my $zip = Archive::Zip->new();# establish zip file.my @files = (    '/home/sysadmin/aaa/dns.pl',    '/home/sysadmin/aaa/md5.pl',    '/home/sysadmin/aaa/apache.pl');foreach my $file (@files) {    $zip->addFile($file);}unless ( $zip->writeToFileNamed('/opt/zip.zip') == AZ_OK ) {    print "Error in archive creation!\n";}else {    print "Archive created successfully!\n";}

2,查看ZIP压缩文件内容
脚本如下:
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
my $zip = Archive::Zip->new();
# read zip file.
my $status = $zip->read("/opt/zip.zip");
if ( $status != AZ_OK ) {
    die('Error in file!');
}
else {
    foreach my $member ( $zip->members() ) {
        print $member->fileName(), ", ", $member->uncompressedSize(), ":",
          $member->compressedSize(), "\n";
    }
}
3,在现有ZIP压缩文件中插入文件
脚本如下:
# read zip file.
my $status = $zip->read("/opt/zip.zip");
if ( $status != AZ_OK ) {
    die('Error in file!');
}
else {
    my @files = (
    '/home/sysadmin/chentao/apache.pl'
    );
    foreach my $file (@files) {
        $zip->addFile($file);
    }
    if ( $zip->overwrite() != AZ_OK ) {
        print "Error in archive creation!";
    }
    else {
        print "Archive created successfully!";
    }
}
在一个现有压缩文件中插入一个文件的过程与建立一个新压缩文件非常相似,成功添加文件后,就可以用overwrite()方法用更新后的压缩文件覆盖原始的压缩文件。
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25264/showart_1760004.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP