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