【问题标题】:Best Api to unzip a file into memory将文件解压缩到内存中的最佳 Api
【发布时间】:2013-06-05 00:07:41
【问题描述】:

我正在开发一个 Qt 应用程序,我们必须读取压缩文件或 QByteArrays 并将它们解压缩到内存中,读取文件内容而不实际将文件解压缩到磁盘。

是否有一个很好的 sdk 可以轻松实现这一点?我们目前使用 QArchive(无错误),但我们发现它并非无错误,并且正在寻求转向不同的解决方案。

感谢任何建议。

谢谢,
利隆

【问题讨论】:

  • 为什么不能解压到临时目录?这正是临时目录的用途。
  • 这些文件是如何压缩的?一次只压缩一个文件,还是您正在处理文件存档?听起来您正在从文件以外的地方接收压缩数据。
  • 你看过quazip.sourceforge.net吗?
  • 存档中有多个文件。我们无法解压缩到临时目录,因为压缩文件是专有的,我们不希望其他人能够轻松阅读它们。这导致了要求 #2 - 如果可能的话,我们希望存档也能够处理密码。
  • quazip 似乎按我们的意愿工作。

标签: c++ qt zip


【解决方案1】:

查看Minizip 包含在zlib 的贡献部分中。这很简单,但做得很好。更新的版本看起来像是在处理密码。

【讨论】:

  • Minizip 似乎没有将文件解压缩到内存中。但是由于源文件是可用的,所以调整它以解压缩到内存应该不会太难。
【解决方案2】:

我们最终选择了 quazip。谢谢Eugen.
似乎运行良好。

【讨论】:

    【解决方案3】:

    看看http://www.7-zip.org/sdk.html。它已在公共领域获得许可。

    【讨论】:

    • 7-Zip 文件管理器支持使用各种库的各种格式,但 7-Zip SDK (LZMA SDK) 仅适用于 7-zip 自己的格式。其他格式的代码不是公共领域的。
    • 正确 - 我们对此进行了调查,但它无法处理 zip 格式。
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多