Papa De Beau
Papa De Beau

Reputation: 3828

How to zip / unzip in AS3 Air?

How do I zip and unzip files using as3 in Air. I am coding in Flash Professional.

I have tried several tutorials but can't get it. I am creating this for apps using Adobe Air.

Upvotes: 0

Views: 2036

Answers (1)

bitmapdata.com
bitmapdata.com

Reputation: 9600

check out below my sample code. I tested. and how to link SWC file in Flash, your previous question i wrote.

here is a sample code. 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?

here is a sample code: 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();

Upvotes: 1

Related Questions