【问题标题】:portable zip library for C/C++ (not an application) [closed]用于 C/C++ 的便携式 zip 库(不是应用程序)[关闭]
【发布时间】: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

标签: c++ zip


【解决方案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】:

    【讨论】:

    • 但它是一个应用程序
    • 所有的镜子都被冻结了。好像死了。
    【解决方案7】:

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

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

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

    【讨论】:

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

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

    【讨论】:

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