Разархивировать и сохранить файлы, используя as3? - PullRequest
6 голосов
/ 28 марта 2012

У меня есть список файлов zip и rar в локальной папке.
Все, что мне нужно сделать, это извлечь содержимое ZIP-файла, а также RAR-файлы и сохранить их в папке с тем же именем соответствующего файла архива.
Поскольку я новичок в as3, я понятия не имею, this.
Есть ли для этого какая-либо библиотека ???




Заранее спасибо ...

Ответы [ 2 ]

10 голосов
/ 05 февраля 2014

Для распаковки zip-файлов вы можете использовать AS3Commons Zip (ранее известный как FZip). Он работает без требования контрольной суммы Adler32, упомянутого в предыдущем ответе.

Вот пример того, как извлечь все файлы в zip-архив. Приведенная ниже функция вызывается, когда объект URLLoader скачает zip-файл и отправит событие Event.COMPLETE:

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

    }

}

Очевидно, что в приведенный выше код следует добавить проверку ошибок, но вы поняли ...

6 голосов
/ 28 марта 2012

Существует несколько библиотек, которые работают с ZIP-файлами в as3, но имейте в виду, что для начинающих в ActionScript 3 это непростая задача.

  • FZip кажется наиболее широко используемым, но для этого необходимо, чтобы ZIP-архивы имели контрольных сумм Adler32 .В комплекте с библиотекой есть скрипт Python, который вставляет контрольную сумму в ZIP-файлы для предварительной обработки файлов перед их разархивированием.

  • Порт As3 JZlib , библиотека as3использовать с Fzip вместо скрипта Python, упомянутого выше.

  • AS3 Zip Library (автор заявляет, что он медленнее FZip ), позволяющий избежать проблемы контрольной суммы Addler32 .

  • Вкл. Adobe Air , вы можете посмотреть подробное объяснение ирабочий пример в этой статье на веб-сайте Adobe .

Надеюсь, это поможет!

...