¿Cómo encontrar la posición del Directorio Central en un archivo Zip?

Estoy tratando de encontrar la posición del primer encabezado del archivo del Directorio Central en un archivo Zip.

Estoy leyendo estos:http: //en.wikipedia.org/wiki/Zip_ (file_format) http: //www.pkware.com/documents/casestudies/APPNOTE.TX

Como lo veo, solo puedo escanear a través de los datos Zip, identificar por el encabezado en qué tipo de sección estoy, y luego hacer eso hasta que llegue al encabezado del Directorio Central. Obviamente, leería los encabezados de archivo antes de eso y usaría el "tamaño comprimido" para omitir los datos reales, y no para recorrer todos los bytes del archivo ...

Si lo hago así, prácticamente ya conozco todos los archivos y carpetas dentro del archivo Zip, en cuyo caso ya no veo mucho uso para el Directorio Central.

Según tengo entendido, el propósito del Directorio central es enumerar los metadatos del archivo y la posición de los datos reales en el archivo Zip para que no necesite escanear todo el archivo.

Después de leer sobre el registro del Fin del Directorio Central, Wikipedia dice:

Este pedido permite crear un archivo zip en una sola pasada, pero generalmente se descomprime al leer primero el directorio central al final.

¿Cómo podría encontrar fácilmente el registro de Fin del Directorio Central? Debemos recordar que puede tener un comentario de tamaño arbitrario allí, por lo que es posible que no sepa cuántos bytes desde el final del flujo de datos se encuentra. ¿Lo escaneo?

PD. Estoy escribiendo un lector de archivos Zip.

Respuestas a la pregunta(6)

Su respuesta a la pregunta