У меня есть список zip- и rar-файлов в локальной папке.
Все, что мне нужно сделать, это извлечь содержимое zip-файлов, а также rar-файлов и сохранить их в папке с тем же именем, что и у соответствующего архива. файл.
Поскольку я новичок в as3, я понятия не имею об этом.
Есть ли какая-нибудь библиотека для этого???
Заранее спасибо. ..
Распаковать и сохранить файлы с помощью as3?
Ответы (2)
Существует несколько библиотек, которые работают с ZIP-файлами в формате as3, но имейте в виду, что это непростая задача для новичка в ActionScript 3.
FZip кажется наиболее широко используемым, но он требует, чтобы ZIP-архивы имели контрольные суммы Adler32. Вместе с библиотекой поставляется скрипт Python, который вводит контрольную сумму в ZIP-файлы для предварительной обработки файлов перед их распаковкой.
As3-порт JZlib, библиотека as3 для использования с Fzip вместо упомянутого выше скрипта Python.
Zip-библиотека AS3 (автор утверждает, что она медленнее, чем FZip), которая позволяет избежать Проблема с контрольной суммой Addler32.
В Adobe Air вы можете ознакомиться с подробным объяснением и рабочим примером в эту статью на сайте Adobe.
Надеюсь это поможет!
Чтобы распаковать zip-файлы, вы можете использовать AS3Commons Zip strong> (ранее известный как 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();
}
}
Очевидно, что в приведенный выше код следует добавить проверку ошибок, но вы поняли...