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

Raj*_*der 6 flash actionscript actionscript-3 zipfile

我有一个本地文件夹中的zip和rar文件列表.
我需要做的就是提取zip文件的内容以及rar文件,并将它们保存在与相应存档文件同名的文件夹中.
由于我是as3的新手,我对此毫无头绪.
这个有没有图书馆?




提前致谢...

dji*_*.co 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();

    }

}
Run Code Online (Sandbox Code Playgroud)

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


dan*_*nii 6

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

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

  • JZlib的As3端口,一个与Fzip一起使用的as3库,而不是上面提到的Python脚本.

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

  • Adobe Air上,您可以在adobe网站上查看本文中的详细说明和工作示例.

希望这可以帮助!

  • 为了记录,自从Flash Player 10(即很久以前)以来,FZip确实*不再需要校验和注入.它只是有效. (2认同)