Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как вытащить содержимое директорий из zip архива (http://www.flasher.ru/forum/showthread.php?t=196136)

caseyryan 19.03.2013 21:49

Как вытащить содержимое директорий из zip архива
 
Уже несколько часов ломаю голову.
Проблема в том, что есть zip архив, в котором аккуратно по папкам разложены картинки. Этот архив нужно разобрать и достать все картинки, сохраняя названия директорий, в которых они лежат.
Использую nochump библиотеку. Все бы отлично, если бы не было директорий, но они есть, и оттуда ничего достать не получается. Вот код, в котором архив читается:
Код AS3:

var zipFile:        ZipFile                         = new ZipFile(Main.storeZip);
var entries:        Array/*ZipEntry*/        = zipFile.entries;
var length:                int                                = entries.length;
for (var i:int = 0; i < length; i++) {
        var entry:        ZipEntry        = entries[i];
        var name:        String                = entry.name;
 
        if (entry.isDirectory()) {
                trace(entry.size); // всегда 0. Картинка точно есть внутри, но как вытащить ее байты?
        }
}

п.с. Использование nochump не принципиально. Пойдет любая библиотека, способная выполнить эту задачу

Crack3r 19.03.2013 22:14

Судя по документации, свойство ZipEntry.name уже содержит в себе путь. То есть если картинка лежит в path/to/image, то ZipEntry.name будет равно "path/to/image/whatever.jpg". Таким образом, можно смотреть является ли файл картинкой и в какой папке он лежит, а потом уже получать байты с помощью ZipFile.getInput(ZipEntry).

caseyryan 19.03.2013 22:54

Хах. Спасибо ) Действительно ларчик просто открывался.
Сбило с толку свойство isDirectory()


Часовой пояс GMT +4, время: 13:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.