Actionscript 3 带子目录的AS3commons zip
我一直在使用as3commons zip库来打包图像供用户下载,目前为止我发现它非常容易使用,但我需要将文件组织在目录中-经过一天的拖网调查,我找不到任何指示如何在zip文件中创建子目录的内容,我发现的所有内容都集中在将文件添加到根目录中。有人知道我会怎么做吗Actionscript 3 带子目录的AS3commons zip,actionscript-3,flash,zip,Actionscript 3,Flash,Zip,我一直在使用as3commons zip库来打包图像供用户下载,目前为止我发现它非常容易使用,但我需要将文件组织在目录中-经过一天的拖网调查,我找不到任何指示如何在zip文件中创建子目录的内容,我发现的所有内容都集中在将文件添加到根目录中。有人知道我会怎么做吗 谢谢,因为3Commons为您创建了子目录:只需传递带有参数的文件的完整路径。这是我的一个旧(部分)样品。它将文件夹和zip文件(:file)作为参数(这里是tempDir:file) private var zip:Zip = new
谢谢,因为3Commons为您创建了子目录:只需传递带有参数的文件的完整路径。这是我的一个旧(部分)样品。它将文件夹和zip文件(:file)作为参数(这里是
tempDir:file
)
private var zip:Zip = new Zip();
private var zipFile:File = new File();
private var filesToCompress:int = 1;
private var filesCompressed:int = 0;
/*** further on ***/
/***
* Waits until all files are compressed and then serializes the zip.
* */
public function fileAddedToZip():void{
filesCompressed++;
if (filesToCompress == filesCompressed){
var stream:FileStream = new FileStream();
stream.openAsync(zipFile, FileMode.WRITE);
zip.serialize(stream);
stream.close();
tempDir.deleteDirectoryAsync(true);
}
}
/*** Adds file to zip but doesn't serialize the zip yet
*
* @param file current file
* @param zip save destination
* @param path current folder nativepath
* **/
public function addFileToZip(file:File, zip:Zip, path:String=""):void{
if(file.isDirectory){
var directory:Array = file.getDirectoryListing();
filesToCompress = filesToCompress + directory.length;
for each (var f:File in directory){
addFileToZip(f, zip, path + "/" + file.name);
}
fileAddedToZip();
}else{
var request:URLRequest = new URLRequest(file.nativePath);
var urlLoader:URLLoader = new URLLoader(request);
urlLoader.addEventListener(Event.COMPLETE, function (event:Event):void {
var pathSplit:Array = file.nativePath.split(".tmp\\",2);
var fileNamePath:String = pathSplit[1] as String;
zip.addFile(fileNamePath, event.target.data);
fileAddedToZip();
});
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(request);
}
}