主页  范文大全   设计学院   SEO研究   免费资源   网赚大全  QQ资源区    电影下载  在线电影   短信&笑话   校内网   理财知识   站长Blog   访客留言   顶级QQ百科

         声明:本站所有资料素材均是由站长精心整理搜集的,属于原创。我们同意您的转载和复制,但是在转载复制时请保留文字出处。本站资料全部免费使用,无需注册,力求打造华北最强最大的免费资源网站。

Perl提供大量处理不同文件格式内置函数和外来模块特别是,它可以通过Archive::Zip模块,动态建立和阅读ZIP压缩文件而不必依赖外来工具和实用工具本教程说明这个模块基础理论和常用方法

首先在Perl提示符下运行以下命令下载并安装该模块(如果你还没有安装它):

perl> perl -MCPAN -e "install Archive::Zip"

注意Archive::Zip模块依靠zlib库运行,因此在安装过程中系统可能要求你下载并安装这个库

建立ZIP压缩文件

首先们看一个简单例子动态建立一个包含几个其它文件ZIP压缩文件输入(或复制)如列表A所示脚本:

列表A

#!/bin/perl

use Archive::Zip;# imports

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

@files = ('mystuff/ad.gif',

'mystuff/alcon.doc',

'mystuff/alcon.xls');# files to store

foreach $file (@files) {

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

}

if ($obj->writeToFileNamed('dummy.zip') != AZ_OK) {# write to disk

print "Error in archive creation!";

} else {

print "Archive created successfully!";

}

这段脚本相当简单但值得仔细看一看第一步是输入Archive::Zip模块并初始化Archive::Zip对象一个实例接下来将所有文件清单以及它们在磁盘中位置进行压缩保存为一个Perl数组要记住的是,脚本(准确地说,运行脚本的用户)必须拥有访问这些磁盘位置的许可否则建立压缩文件过程就会失败

然后,用foreach()循环遍历这个数组用对象的addFile()方法在压缩文件中增加列出文件一旦循环完成,则通过调用writeToFileNamed()方法把最终的压缩文件写入磁盘writeToFileNamed()方法接受所建立的ZIP文件完整路径和名称记住脚本必须拥有向指定的磁盘位置写入文件许可;否则,writeToFileNamed()方法将会失败因而不能建立压缩文件

特别要注意调用writeToFileNamed():方法返回值如果文件被正确写入,Archive::Zip返回一个AZ_OK值在往后操作前系统会检查这个值之后在这个文件中你还会看到这个返回值

要应用上面的脚本实例请修改@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所示

教程录入:xxYsh.com    责任编辑:admin 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 下一篇教程:
  • 推荐链接