PDA

Просмотр полной версии : Как вытащить содержимое директорий из zip архива


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

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