快速业务通道

用Perl动态建立ZIP压缩文件

作者 佚名技术 来源 互联网 浏览 发布时间 2012-01-15
回值。

要应用上面的脚本实例,请修改@files数组的内容以反映你的当地系统配置,并试图在命令提示符或浏览器中执行它。如果一切运行正常,这段脚本应该会找到并将所有文件读入一个叫做dummy.zip的文件中。

查看ZIP压缩文件内容

如何查看一个现有的压缩文件呢?Archive::Zip带有一个read()方法,可以阅读一个压缩文件的内容,并可访问与单个文件有关的详细信息。列表B是它的一个应用实例:

列表B

 

以下为引用的内容:

#!/bin/perl

use Archive::Zip;# imports

$obj = Archive::Zip->new();# new instance

$status = $obj->read("dummy.zip");# read file contents

if ($status != AZ_OK) {

die('Error in file!');

} else {

foreach $member ($obj->members()) { # print file information

print $member->fileName(), ", ", $member->uncompressedSize(), ":", $member->compressedSize(), "n";

}

}

 

这里,read()方法用于阅读ZIP压缩文件并获得与其内容有关的信息。然后,调用members()方法返回一个结构化对象数组,每个数组元素代表压缩文件中的一个单独文件。通常来说,数组中的每个对象包含相应文件的名称信息、它的许可模式、状态、压缩类型、大小以及最后一次修改时间。我们可以用一个循环方便地提供这些信息,并对它们重新格式化,使它更具可读性,如上面的列表B所示。

以下是一个输出结果样本:

mystuff/ad.gif, 1447:345

mystuff/alcon.doc, 200:34

mystuff/alcon.xls, 28580:21483

在现有ZIP压缩文件中插入文件

如果你已经有一个ZIP压缩文件,只需要往其中增加一个新文件,那么操作过程就相当简单:只要调用addFile()方法,增加文件的名称和路径即可。为说明这一点,我们回到dummy.zip文件,并试图给它增加一些新文件。(列表C

列表C

 

以下为引用的内容:

#!/bin/perl

use Archive::Zip;# imports

$obj = Archive::Zip->new();# new instance

$status = $obj->read('dummy.zip');# read file contents

if ($status != AZ_OK) {

die('Error in file!');

} else {

@files = ('otherstuff/logo.gif',# files to add

'otherstuff/header.gif',

'morestuff/berlin-bear.psd');

foreach $file (@files) {

$obj->addFile($file);# add files

}

if ($obj->overwrite() != AZ_OK) {# overwrite archive with new contents

print "Error in archive creation!";

} else {

print "Archive created successfully!";

}

}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号