2012-03-28 89 views
5

我有一个本地文件夹中的zip和rar文件的列表。
我所需要做的就是提取压缩文件的内容以及rar文件,并将它们保存在具有相应存档文件相同名称的文件夹中。
由于我是as3的新手,我对此没有任何线索。
有没有这个库?




在此先感谢...使用as3解压并保存文件?

+1

如果不使用AIR或类似的东西,你不能进行本地文件操作。如果你正在开发一个本地应用程序,我的建议是尝试用C++等更强大的语言编写这些部分。但也有类似的东西http://codeazur.com.br/lab/fzip/ – HeyYO 2012-03-28 13:37:19

回答

6

有几个图书馆,在那里,处理在AS3 ZIP文件,但请注意,这是在ActionScript 3

    初学者也绝非易事
  • 似乎是使用最广泛的,但它要求ZIP档案有Adler32校验和。随库一起提供了一个Python脚本,它将校验和注入ZIP文件,以在解压缩文件之前预处理这些文件。

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

  • AS3 Zip Library避免了Addler32校验问题(作者指出,慢于FZip)。

  • Adob​​e Air,你可以看看this article on the adobe website的详细解释和工作示例。

希望这有助于!

+2

对于记录来说,自从Flash Player 10(即很久以前)FZip不再需要校验和注入。它只是工作。 – 2014-01-07 19:03:15

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(); 

    } 

} 

显然,错误检查应添加到上面的代码,但你的想法...

+4

这应该是被接受的答案。 – 2014-12-12 03:08:14