【问题标题】:Extract ZIP into QByteArray将 ZIP 提取到 QByteArray
【发布时间】:2017-12-02 10:01:12
【问题描述】:

如何将 ZIP 存档解压缩到 QByteArray (C++ Qt)? 我尝试使用QuaZipQZipReader 解压缩 - 所有这些方法都需要将 ZIP 数据提取到某个文件目标(必须是 QString - 目标路径)。 感谢所有阅读此问题的人。

【问题讨论】:

  • 这是关于一些第三方库而不是 Qt 但与 Qt 有关。我怀疑这是正确的问题。无论如何:cep.xray.aps.anl.gov/software/qt4-x11-4.8.6-browser/d7/df4/…
  • 我不清楚您真正在寻找什么。展示您已经完成的工作可能会很有用 (minimal reproducible example)。
  • 最初,我有一个包含 ZIP 存档的 QbyteArray(不是文件!)。我需要扩展数据并再次将其传输到 QByteArray(而不是文件!)
  • 拿那个开源库并添加自己的方法?

标签: c++ qt zip qbytearray


【解决方案1】:

您不能简单地“解压缩”到字节数组中,因为 zip(与普通 gz 不同)包含多个文件和文件夹,而不仅仅是数据流。您将如何将它们分隔在单个字节数组中?

您可以做的是提取存档中的每个文件(或单个文件,如果您的存档仅包含一个文件)。QuaZipFile 继承QIODevice。这意味着,您可以简单地对存档进行交互并提取其中的每个文件,然后使用quaZipFile.readAll(); 以字节数组的形式获取数据。这将为您在 zip 存档中的每个文件提供一个字节数组。

【讨论】:

  • 菲利克斯,是的,你是对的!我想将 zip 文件的所有部分——所有以 \x504b0304 开头的文件——本地文件头解压缩到 qbytearray 中。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
相关资源
最近更新 更多