Как распаковать файл .zip с помощью Lua?

Как извлечь файл .zip с несколькими подкаталогами в Lua?

Да, я знаю это, но я не думаю, что это работает с несколькими подкаталогами. Я не вижу никакой функции в LuaZip, которая позволяла бы перечислять файлы в каталоге внутри zip-файла. Любые предложения?

Я не знаю названия каталогов (тех, что внутри zip), поэтому мне нужно как-то их перечислить.


person user1543951    schedule 23.07.2012    source источник


Ответы (1)


После того, как вы откроете почтовый индекс с помощью zfile = zip.open('file.zip'), отсканируйте его с помощью for member in zfile:files(). member будет содержать полный путь к файлам внутри zip, включая все ведущие каталоги, разделенные /. Вы должны разобрать его, создать каталоги в реальной файловой системе и извлечь файлы в нужное место.

Если вам нужен список уникальных каталогов, просто удалите имя файла из всех элементов и сохраните оставшиеся каталоги как ключи в таблице.

person Oleg V. Volkov    schedule 23.07.2012
comment
Спасибо! Я не знал, что zfile:files() также дает мне все файлы внутри подкаталогов. - person user1543951; 23.07.2012