Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unzip and save files using as3?

I have a list of zip and rar files in a local folder.
All I need to do is to extract the contents of the zip as well as rar files and to save them in a folder with the same name of the respective archive file.
Since I am new to as3, I have no clue for this.
Is there any Library for this???




Thanks in advance...

like image 663
Raj A.N.T. Gounder Avatar asked Mar 28 '12 12:03

Raj A.N.T. Gounder


2 Answers

To decompress zip files, you can use AS3Commons Zip (formerly know as FZip). It works without the Adler32 checksum requirement mentionned in a previous answer.

Here's an example of how to extract all files in a zip archive. The function below would be called when a URLLoader object has downloaded the zip file and dispatched an Event.COMPLETE event:

import org.as3commons.zip.Zip;
import org.as3commons.zip.ZipFile;

private function _onZipDownloaded(e:Event):void {

    var ba:ByteArray = ByteArray(e.target.data);
    var zip:Zip = new Zip();
    zip.loadBytes(ba);

    for(var i:uint = 0; i < zip.getFileCount(); i++) {

        var zipFile:ZipFile = zip.getFileAt(i);
        var extracted:File = directory.resolvePath(zipFile.filename);

        var fs:FileStream = new FileStream();
        fs.open(extracted, FileMode.WRITE);
        fs.writeBytes(zipFile.content);
        fs.close();

    }

}

Obviously, error checking should be added to the code above but you get the idea...

like image 149
djip.co Avatar answered Sep 22 '22 23:09

djip.co


There are a few libraries out there that deal with ZIP files in as3, but beware that this is no easy task for a beginner in ActionScript 3.

  • FZip seems to be the most widely used, but it requires that the ZIP archives have Adler32 checksums. Provided with the library there is a Python script that injects the checksum into ZIP files to preprocess the files before unzipping them.

  • As3 port of JZlib, an as3 library to use with Fzip instead of the Python script mentioned above.

  • AS3 Zip Library (the author states that is slower than FZip) that avoids the Addler32 checksum problem.

  • On Adobe Air, you can take a look at a detailed explanation and a working example in this article on the adobe website.

Hope this helps!

like image 36
danii Avatar answered Sep 24 '22 23:09

danii