Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: CorEduard en 24 de Noviembre de 2013, 12:19:58 PM

Título: ¿Como se cargar un ZIP dentro de otro ZIP?
Publicado por: CorEduard en 24 de Noviembre de 2013, 12:19:58 PM
Hola :)

En este momento estoy desarrollando en el lenguaje C mi propia librería FileSystem para poder hacer uso de archivos de recursos, en otras palabras para empaquetar los archivos multimedia, los scripts, etc...

Para esto estoy utilizando las librería ZLIB y PhysicsFS (https://icculus.org/physfs/ (https://icculus.org/physfs/))

Pero me encontré con un problema, cuando creo una archivo ZIP para usarlo como un único archivo de recurso y a ese archivo le meto otro archivo ZIP este mismo archivo no puedo abrirlo para poder extraer su contenido.

¿Alguien tiene alguna idea de como puedo arreglar esto o algún código de ejemplo que me pueda ayudar?. Gracias.
Título: Re:¿Como se cargar un ZIP dentro de otro ZIP?
Publicado por: [EX3] en 25 de Noviembre de 2013, 10:12:55 AM
No se como funcionara PhysicFS ni recuerdo bien como funcionaba ZLib (llevo más de 5 años sin tocarla) pero para hacer lo que quieres hacer, a cualquier nivel, lo que deberías es poder acceder a todo el contenido del zip dentro del nivel donde estés (un zip dentro de zip dentro de un zip...) y entonces leer su cabecera. En la cabecera tienes toda la información de que archivos contiene y la información de cada uno. No se si PhysicsFS tiene alguna función para cargar ZIPs desde memoria, si es el caso, es tan sencillo con leer todos los bytes que componen el ZIP dentro del tu ZIP y pasárselo a PhysicsFS. De lo contrario, te tocara extraer el ZIP a disco y hacer la carga normal... o hacerte tu propia función para leer la cabecera de archivos ZIP.

Salu2...
Título: Re:¿Como se cargar un ZIP dentro de otro ZIP?
Publicado por: CorEduard en 25 de Noviembre de 2013, 01:19:46 PM
Gracias [EX3], probaré hacer lo que me dijiste :)