用于 C/C++ 的便携式 zip 库(不是应用程序)[关闭]

Posted

技术标签:

【中文标题】用于 C/C++ 的便携式 zip 库(不是应用程序)[关闭]【英文标题】:portable zip library for C/C++ (not an application) [closed] 【发布时间】:2008-11-04 18:45:56 【问题描述】:

我希望能够在多个版本的 Windows、Linux/Unix 和 MacOS 上从我的非 gui C/C++ 应用程序中压缩文件。

用户将使用 Eclipse + makefile 或 VisualStudio 使用此应用程序进行编译和运行。我不希望用户必须单独安装某些东西,或者让我的 makefile 安装可执行文件。

更喜欢开源。我已经在看“Zip 3.0”了...

【问题讨论】:

大概是“zip”,您的意思是 zip 而不仅仅是压缩/存档?这里的大多数答案都推荐 zlib 但根据其网站 zlib 单独不支持 zip 存档zlib.net/zlib_faq.html#faq11 【参考方案1】:

看看Libarchive。我花了很多时间寻找一个具有方便界面的跨平台和 LGPL 许可库。这是我见过的最好的。非常简单而强大的工具。最初是为类 Unix 系统设计的,但也有 the Windows version。

【讨论】:

不错的发现。感谢分享。很棒的文档。 你能帮我安装 libarchive,我目前正在使用 VS2013,当我 Rrebuild Solution 生成 @ 时,我收到此错误 MSB6006: "cmd.exe" exited with code -1073741571. 987654325@关注these steps之后。 抱歉,我帮不上忙,我现在没有任何运行 Windows 的机器可用。我建议请 libarchive 开发人员提供帮助。 libarchive 不适用于 RAR 文件(或者更好的是它从根本上被破坏) - 因此不确定它有多少价值,因为网络上有多少 RAR 文件......【参考方案2】:

我使用 miniz 取得了不错的成绩:https://code.google.com/p/miniz/

对于c++中字符串的简单压缩,我也很喜欢Timo Bingmann's solution。

【讨论】:

再次为 miniz 投票。不错的单文件库。解压缩 .zip 档案的速度很快。【参考方案3】:

我推荐 ZipLib https://bitbucket.org/wbenny/ziplib/wiki/Home

我喜欢这个项目的个人原因:

围绕 c++11 stl 流构建(例如解压缩为 stl 流!) 轻量级(除了 zlib 之外没有依赖项) 可以在 windows 和 liunx 上使用

我花了很长时间才找到这个项目 - 希望这对某人有所帮助。

【讨论】:

看不到我如何打开内存缓冲区中的 ZIP 存档。或者在 WinNT 的磁盘上,'koz 文件名将在 std::wstring 中,并且没有 API 可以使用它。【参考方案4】:

我们在这里使用了几次zlib。这是一个相当标准的库,在大多数主要语言中都有实现。

【讨论】:

我不认为 zlib 可以创建包含多个文件的 ZIP 存档。它是一个压缩库,还包括创建一个文件的功能(以 gzip 的方式)。【参考方案5】:

这个怎么样:

http://zziplib.sourceforge.net/

【讨论】:

【参考方案6】:

http://www.info-zip.org/UnZip.html

HTH

【讨论】:

然而它是一个应用程序 所有的镜子都被冻结了。好像死了。【参考方案7】:

其他人提到了 zlib,它很好而且相当简单。

7-Zip (LZMA) SDK 更复杂,但压缩率也非常好。

编辑:虽然仍处于开发阶段,但随着发布过程和历史的推移,我现在不太愿意推荐这个。

【讨论】:

从文档看来它只支持 7z 格式的档案。这是不真实的吗? @pqnet - 我使用 7zip。它适用于任何压缩格式(zip、7zip、.pkzip、tar、...等)我目前不推荐该 API,因为我没有使用它,但 7zip 应用程序运行良好。【参考方案8】:

ZLIB - 世界上最便携的库。开源,非常成熟和可靠。黄金标准。 为什么要使用其他东西?

【讨论】:

... 因为它不处理 zip 文件?它只处理流压缩。 在 controb/minizip 目录中有 zip 实用程序。 @Cheeso 我认为你应该提到这一点。我没有意识到 minizip 包含在 zlib 中,除了“contrib”中还有很多其他好东西。所以,我觉得你可以编辑你的答案以更有帮助。 我确实在三年前的评论中提到过它!

以上是关于用于 C/C++ 的便携式 zip 库(不是应用程序)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于创建 OpenGL 应用程序的便携式工具包库

免费的基于 C/C++ 的 zip/zip64 库?

用于C / C ++应用程序的开源PDF库? [关闭]

C/C++ HTTP 库,只处理逻辑?

使用 System.IO.Packaging 生成 ZIP 文件

C/C++ 中最好的加密库是啥? [关闭]