gpt4 book ai didi

c++ - zip 文件缓冲 C++

转载 作者:行者123 更新时间:2023-11-28 06:23:49 24 4
gpt4 key购买 nike

我必须从 char[] 缓冲区中的 zip 文件中逐字节读取 dat 文件。 zip 文件仅包含一个 dat 文件。我想逐 block 解压缩会很好。我正在使用带有 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 压缩内容 block 。这是一个文件馆。

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

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

关于c++ - zip 文件缓冲 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28876296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com