0

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

我已经尝试了几个教程,但无法获得它。我正在为使用 Adob​​e Air 的应用程序创建这个。

4

1 回答 1

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();
于 2012-09-03T23:01:15.067 回答