unzOpen () предназначен для выделения и возврата дескриптора вызывающей стороне. После того, как вы получите этот дескриптор, вы можете работать с этим zip-архивом (то есть искать файл, надувать файлы из архива, ...). После того, как все операции завершены, вы должны явно закрыть zip-архив, вызвав unzClose (s), который отменяет выделение s для вас.
Вот пример для извлечения конкретного файла из архива:
unzFile hArchive;
unsigned char buffer[1024];
hArchive = unzOpen("abc.zip");
if (hArchive != NULL) {
if (unzLocateFile(hArchiveFile, "example.txt", 0) == UNZ_OK) {
if (unzOpenCurrentFile(hArchiveFile) == UNZ_OK) {
while (unzReadCurrentFile(hArchiveFile,buffer,sizeof(buffer)) > 0) {
/* write buffer to another file / to stdout / ... */
}
unzCloseCurrentFile((unzFile) *hArchiveFile);
}
}
}
unzClose(hArchive);
см. http://www.winimage.com/zLibDll/minizip.html для получения дополнительной информации.