我在本地文件夹中有一个zip和rar文件列表
我需要做的就是提取zip文件的内容以及rar文件,并将它们保存在与相应档案文件同名的文件夹中。
因为我是as3的新手,所以我不知道为此。
是否有任何图书馆用于此事件?
提前致谢...
答案 0 :(得分:10)
要解压缩zip文件,您可以使用 AS3Commons Zip (以前称为FZip)。它的工作没有上一个答案中提到的Adler32校验和要求。
以下是如何提取zip存档中所有文件的示例。当URLLoader
对象下载了zip文件并发送Event.COMPLETE
事件时,将调用以下函数:
import org.as3commons.zip.Zip;
import org.as3commons.zip.ZipFile;
private function _onZipDownloaded(e:Event):void {
var ba:ByteArray = ByteArray(e.target.data);
var zip:Zip = new Zip();
zip.loadBytes(ba);
for(var i:uint = 0; i < zip.getFileCount(); i++) {
var zipFile:ZipFile = zip.getFileAt(i);
var extracted:File = directory.resolvePath(zipFile.filename);
var fs:FileStream = new FileStream();
fs.open(extracted, FileMode.WRITE);
fs.writeBytes(zipFile.content);
fs.close();
}
}
显然,错误检查应该添加到上面的代码中,但你明白了......
答案 1 :(得分:6)
有一些库可以处理as3中的ZIP文件,但请注意,对于ActionScript 3中的初学者来说,这不是一件容易的事。
FZip似乎是使用最广泛的,但它要求ZIP存档具有 Adler32校验和。随库提供的是一个Python脚本,它将校验和注入到ZIP文件中,以便在解压缩之前对文件进行预处理。
As3 port of JZlib,一个用于 Fzip 的as3库,而不是上面提到的Python脚本。
AS3 Zip Library(作者声称比 FZip 慢)避免了 Addler32校验和问题。
在 Adobe Air 上,您可以查看this article on the adobe website中的详细说明和工作示例。
希望这有帮助!