使用as3解压缩并保存文件?

时间:2012-03-28 12:29:29

标签: actionscript-3 flash actionscript zipfile

我在本地文件夹中有一个zip和rar文件列表 我需要做的就是提取zip文件的内容以及rar文件,并将它们保存在与相应档案文件同名的文件夹中。
因为我是as3的新手,所以我不知道为此。
是否有任何图书馆用于此事件?

提前致谢...

2 个答案:

答案 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校验和问题

  • Adob​​e Air 上,您可以查看this article on the adobe website中的详细说明和工作示例。

希望这有帮助!