我开始使用zlib 1.2.5,但是没有找到从zip文件中提取的例程?我了解到有一个minizip应用程序,它是分发的一部分。
这就是预期的操作方式吗?
是的,它表现得很好。(但如果您不喜欢C代码,可以查看有C++和C#代码的7-zip SDK。)
unzip.h
中。zip.h
中。(请参见contrib\minizip\unzip.h和contrib\minizip\zip.h)
例如,解压缩:
您的zip文件的unzOpen()
函数将返回一个unzFile
然后在这个unzFile
上使用unzGoToFirstFile()
和unzGoToNextFile()
来浏览存档中的所有文件。
接着使用unzGetCurrentFileInfo()
获取每个文件的文件信息,包括其大小。
当然,在某些时刻您应该调用unzOpenCurrentFile()
。
然后使用文件信息中的大小调用unzReadCurrentFile()
,检索存档文件的二进制内容。
可选地,您可以提供一个不透明结构以使用自己的IO函数,但显然,有一个默认的Win32实现用于文件访问,因此您甚至不必担心这个。
另外,别忘了调用unzCloseCurrentFile()
。
来自:http://www.zlib.net/zlib_faq.html#faq11:
不行,需要参考zlib发行版中的contrib/minizip目录。
那里没有教程,但minizip zip.c源代码确切用于使用zlib在zip文件上进行IO(因此可能是压缩和解压缩)。
仍然没有教程,但http://www.winimage.com/zLibDll/minizip.html提供了更多细节。