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

AS3: How can I unzip a zip file to air application folder through my air application?

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

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

更像是,如果我正在更新任何空中应用程序。 或向其添加新功能。所以我想使用要使用的 zip 的包含。

实际上,我需要对此进行演练。如何做到这一点?

-谢谢。

说:"Or adding new features to it" 几乎意味着您没有这方面的经验。

任何即时更新已安装 Ios 应用程序代码的尝试都将导致该应用程序出于安全原因被完全禁用。此外,这些尝试可能会让您被 itunes.connect 禁止。

只有一种方法可以更新 Ios 应用程序,那就是在 itnues 中发布新版本。

可以动态更新资产,位图、声音等...只要它们不包含任何代码。

出于安全原因,不能将新文件写入工作应用程序文件夹中,它们必须写入应用程序的存储文件夹中。

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

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