【问题标题】:Unzip and save files using as3?使用 as3 解压缩并保存文件?
【发布时间】:2012-03-28 12:29:29
【问题描述】:

我在本地文件夹中有一个 zip 和 rar 文件列表。
我需要做的就是提取 zip 和 rar 文件的内容,并将它们保存在与相应存档文件同名的文件夹中。
由于我是 as3 的新手,所以我不知道这个。
有没有这个库?




在此先感谢...

【问题讨论】:

  • 如果不使用 AIR 或类似工具,您将无法执行本地文件操作。如果您正在开发本地应用程序,我对您的建议是尝试使用更强大的语言(如 c++)编写这些部分。但是也有这样的codeazur.com.br/lab/fzip

标签: actionscript-3 flash actionscript zipfile


【解决方案1】:

要解压 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();

    }

}

显然,错误检查应该添加到上面的代码中,但你明白了......

【讨论】:

    【解决方案2】:

    有一些库可以处理 as3 中的 ZIP 文件,但请注意,这对于 ActionScript 3 的初学者来说并非易事。

    • FZip 似乎是使用最广泛的,但它要求 ZIP 存档具有 Adler32 校验和。该库提供了一个 Python 脚本,可将校验和注入 ZIP 文件,以便在解压缩文件之前对其进行预处理。

    • As3 port of JZlib,一个 as3 库,可与 Fzip 一起使用,而不是上面提到的 Python 脚本。

    • AS3 Zip Library(作者表示比 FZip 慢)避免了 Addler32 校验和问题

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

    希望这会有所帮助!

    【讨论】:

    • 记录在案,因为 Flash Player 10(即很久以前)FZip 不再需要校验和注入。它只是工作。
    猜你喜欢
    • 2012-04-12
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2016-03-31
    • 2014-05-22
    相关资源
    最近更新 更多