Как найти положение центрального каталога в Zip-файле?
Я пытаюсь найти положение первого заголовка файла центрального каталога в Zip-файле.
Я читаю это:http://en.wikipedia.org/wiki/Zip_(file_format) http://www.pkware.com/documents/casestudies/APPNOTE.TXT
Насколько я понимаю, я могу только сканировать данные Zip, определять по заголовку, в каком разделе я нахожусь, и затем делать это, пока не попаду в заголовок Central Directory. Я бы, очевидно, прочитал заголовки файлов до этого и использовал бы «сжатый размер», чтобы пропустить фактические данные, а не цикл для прохождения каждого байта в файле ...
Если я делаю это таким образом, то я практически уже знаю все файлы и папки внутри Zip-файла, и в этом случае я больше не вижу смысла в использовании Центрального каталога.
Насколько я понимаю, цель Central Directory состоит в том, чтобы перечислить метаданные файла и положение фактических данных в файле Zip, чтобы вам не нужно было сканировать весь файл?
После прочтения записи End Of Central Directory, Википедия говорит:
Такое упорядочение позволяет создать zip-файл за один проход, но обычно он распаковывается, сначала читая центральный каталог в конце.
Как мне легко найти запись конца центрального каталога? Нам нужно помнить, что там могут быть комментарии произвольного размера, поэтому я не знаю, сколько байтов в конце потока данных находится в нем. Я просто сканирую это?
Постскриптум Я пишу читатель Zip файла.