如何在AS3 Air中压缩/解压缩?

时间:2012-09-03 22:42:09

标签: android actionscript-3 air zip unzip

如何在Air中使用as3压缩和解压缩文件。我在Flash Professional中编码。

我已经尝试了几个教程,但无法得到它。我正在使用Adobe Air创建此应用程序。

1 个答案:

答案 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();