AS3:如何通过我的air应用程序将zip文件解压缩到air应用程序文件夹中?

2ad*_*ion -1 air flash zip actionscript-3

我的zip文件夹中有一些文件和目录结构。如何打开该zip文件并将其包含的内容通过我的air应用程序复制到air应用程序文件夹?

我检查了一些链接,但还不确定,它如何工作?

如果我要更新任何空中应用程序,则更像是。或为其添加新功能。因此,我想使用要使用的zip的包含。

实际上,我需要对此进行逐步了解。如何做到这一点?

-谢谢。

Gui*_*BUT 5

我使用过“ airxzip”:https : //code.google.com/archive/p/airxzip/ 在带有大型zip文件(400-500Mo)和大量嵌套多个文件的iOs / Windows上,该方法对我来说正常工作目录。

var reader:ZipFileReader = new ZipFileReader();
reader.addEventListener(ZipEvent.ZIP_DATA_UNCOMPRESS, zipDataUncompressHandler);
var zipFile:File = File.applicationStorageDirectory.resolvePath('myArchive.zip');
reader.open(zipFile);

var list:Array = reader.getEntries();
// var zipFileCount:int = list.length;

for each(var entry:ZipEntry in list){
    var filename:String = entry.getFilename();

    if(entry.isDirectory()){
        //trace("DIR  --->" + filename);
    }
    else{
        //trace("FILE --->" + filename + "(" + entry.getCompressRate() + ")");
        reader.unzipAsync(entry);
    }
}

private function zipDataUncompressHandler(e:ZipEvent):void {

    var entry:ZipEntry = e.entry;

    var file:File = File.applicationStorageDirectory.resolvePath('data' + File.separator + entry.getFilename());
    var fs:FileStream = new FileStream();
    fs.open(file,FileMode.WRITE);
    fs.writeBytes(e.data);
    fs.close();

    zipFileWritedCount++;

    // Add a check if all files have been uncompressed, so close the reader and remove the archie
    // if(zipFileWritedCount == zipFileCount)
    //    (e.target as ZipFileReader).close();
    //    var zipFile:File = File.applicationStorageDirectory.resolvePath('versionArchive.zip');
    //    zipFile.deleteFile();
    // }
}
Run Code Online (Sandbox Code Playgroud)