我必须从char []缓冲区中的zip文件中逐字节读取数据文件。 zip文件只包含一个dat文件。我猜大块的解压缩块会很好。我正在使用带有c ++的Visual Studio 2013。
我找到了zip-utils(http://www.codeproject.com/Articles/7530/Zip-Utils-clean-elegant-simple-C-Win),这样可以,因为它已有近10年的历史了吗? Minizip会是一个好方法吗?我猜zlib单独对这个用例来说还不够,对吧?
我的问题是,解压缩的最佳方式是什么?我没有处理zip文件的经验,并希望听到有经验的人的建议。
谢谢,
弗里德里希
答案 0 :(得分:1)
Minizip会奏效。请注意,它仍然需要与zlib源代码链接。
zip文件不仅仅是zlib压缩内容的块。 它是一个档案。
有一个目录标题,即使存档只包含一个文件,每个元素标题也必须解码。通常,标题会告诉您zip文件中哪个偏移量可以找到您的DAT压缩内容。然后,您可能会使用zlib通过从给定偏移量开始的块来解码块。
请注意,zip文件格式总是暗示zlib是一个压缩器(你可以有许多不同的压缩器)。如果掌握了创建zip文件的代码,那就不是问题了。但如果它来自敌对用户,那么你应该依靠实际检查使用的压缩器并断言它的zlib否则你应该拒绝解压缩文件因为你不能做所以。