Unzip and save files using as3?

后端 未结 2 1482
梦毁少年i
梦毁少年i 2020-12-06 19:11

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 s

相关标签:
2条回答
  • 2020-12-06 19:38

    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...

    0 讨论(0)
  • 2020-12-06 19:49

    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!

    0 讨论(0)
提交回复
热议问题