如何在Air中使用as3压缩和解压缩文件。我在Flash Professional中编码。
我已经尝试了几个教程,但无法得到它。我正在使用Adobe Air创建此应用程序。
答案 0 :(得分:1)
查看下面的示例代码。我测试过了。以及如何在Flash中链接SWC文件,我之前写的问题。
这是一个示例代码。 simple_unzip
import com.coltware.airxzip.ZipEntry;
import com.coltware.airxzip.ZipError;
import com.coltware.airxzip.ZipFileReader;
import com.coltware.airxzip.*;
import flash.filesystem.File;
import flash.utils.ByteArray;
import flash.net.FileReference;
import flash.net.FileFilter;
var file:File;
var fileReference:FileReference;
var fileFilter:FileFilter;
function unzip_init():void{
fileFilter = new FileFilter("selected your zip file.", "*.zip; *.gz2; *.bz2;");
file = new File();
file.browseForOpen("\Users", [fileFilter]);
file.addEventListener(Event.SELECT, onSelectedFile);
}
function onSelectedFile(e:Event):void
{
var reader:ZipFileReader = new ZipFileReader();
reader.open(file);
var list:Array = reader.getEntries();
for each(var entry:ZipEntry in list){
if(entry.isDirectory()){
trace("DIR --->" + entry.getFilename());
}
else{
trace("FILE --->" + entry.getFilename() + "(" + entry.getCompressRate() + ")");
}
}
}
unzip_init();
<强> how to save File?
强>
这是一个示例代码:simple_unzip2
import com.coltware.airxzip.ZipEntry;
import com.coltware.airxzip.ZipError;
import com.coltware.airxzip.ZipFileReader;
import com.coltware.airxzip.*;
import flash.filesystem.File;
import flash.utils.ByteArray;
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
var file:File;
var fileReference:FileReference;
var fileFilter:FileFilter;
var baseDir:File = File.documentsDirectory;
function unzip_init():void{
fileFilter = new FileFilter("selected your zip file.", "*.zip; *.gz2; *.bz2;");
file = new File();
file.browseForOpen("\Users", [fileFilter]);
file.addEventListener(Event.SELECT, onSelectedFile);
}
function onSelectedFile(e:Event):void
{
var reader:ZipFileReader = new ZipFileReader();
reader.open(file);
var list:Array = reader.getEntries();
var i:int = 0;
for each(var entry:ZipEntry in list)
{
var filename:String = entry.getFilename();
if(entry.isDirectory())
{
trace("DIR --->" + entry.getFilename());
// If entry is directory
var dir:File = baseDir.resolvePath(filename);
dir.createDirectory();
}
else
{
trace("FILE --->" + entry.getFilename() + "(" + entry.getCompressRate() + ")");
var unzippedBytes:ByteArray = reader.unzip(entry);
//trace("btyes --->" + unzippedBytes);
var file:File = baseDir.resolvePath(entry.getFilename());
var fs:FileStream = new FileStream();
fs.open(file,FileMode.WRITE);
fs.writeBytes(unzippedBytes,0,unzippedBytes.length);
fs.close();
}
}
reader.close();
}
unzip_init();