Центральный каталог zip-файла хранится в самом конце файла.Самая последняя запись в ней, Конец записи центрального каталога , дает смещение, где этот каталог начинается.
Таким образом, вы можете прочитать весь центральный каталог и найти в нем нужную запись имени файла.В этой записи указывается, где начинается локальный заголовок файла для этого файла, и его (сжатый) размер.Чтение этого заголовка скажет, где файл начинается.За файлом может следовать дескриптор данных .Это обеспечивает всю информацию, необходимую для извлечения только этого файла с его заголовком и дескриптором.
Хотя теперь у вас достаточно информации, чтобы разархивировать файл, большинству инструментов потребуется центральный каталог, соответствующий только этому файлу, который выпридется воссоздать.Страница man для zip на моем Fedora предполагает, что zip -FF
может «исправить» архив, в котором отсутствует центральный каталог.