Какой самый быстрый способ получить доступ к файлам в zip-файле? - PullRequest
3 голосов
/ 27 мая 2011

Какой самый быстрый способ чтения отдельных файлов (случайным образом) из zip-файла?

Насколько я понимаю, в zip-файлах есть каталог, в котором хранятся отдельные записи файла, и я мог бы отсканировать этот каталог для создания внешнего индекса.Существуют ли какие-либо стандартизированные способы (т.е. существующие библиотеки), которые уже делают это?Или я мог бы использовать специализированный тип почтового файла?

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

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

Формат zip задокументирован довольно хорошо; это не так уж сложно сделать. Дьявол кроется в деталях. Если ваши zip-файлы используют расширения ZIP64, шифрование, разделенные архивы ... вот тогда это становится сложным. Для простых zip-файлов делать то, что вы представляете, не так сложно.

Тем не менее было бы проще использовать внешнюю библиотеку.

3 голосов
/ 27 мая 2011

Minizip, кажется, хорошая библиотека для чтения или записи zip-файлов.Он использует библиотеку zlib.

http://www.winimage.com/zLibDll/minizip.html

...