zip文件到缓冲区c++

zip-file to buffer c++

本文关键字:c++ 缓冲区 文件 zip      更新时间:2023-10-16

我必须从char[]缓冲区中的zip文件逐字节读取dat文件。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文件的经验,我想听听有经验的人的建议。

谢谢你,

弗里德里希

Minizip可以工作。请注意,它仍然需要zlib源代码来链接。

zip文件不仅仅是经过zlib压缩的内容块。这是一个档案。

有一个目录头,即使归档文件只包含一个文件,也必须对每个元素的头进行解码。通常,标头会告诉您,从zip文件中的哪个偏移量可以找到DAT压缩内容。然后,您可能会使用zlib从给定的偏移量开始逐块解码。

还请注意,zip文件格式并不总是暗示zlib作为压缩器(您可以有许多不同的压缩器)。如果您掌握了创建zip文件的代码,这就不是问题。但是,如果它来自敌对用户,那么您应该实际检查使用的压缩器并断言它是zlib,否则您应该拒绝解压缩文件,因为您将无法这样做。