【问题标题】:Can I use zlib to decompress microsoft office files which are actually just zip files?我可以使用 zlib 解压缩实际上只是 zip 文件的 microsoft office 文件吗?
【发布时间】:2016-06-14 21:56:26
【问题描述】:

我想使用 zlib 库扩充 Microsoft Office 文件。根据我的阅读,office 文件只是带有 docx、xlsx 等扩展名的 zip 文件。解压缩实用程序实际上可以解压缩文件。我可以对 zlib 库做同样的事情吗?

【问题讨论】:

  • 我想知道zlib库是否能够解压microsoft office文件。我不是在寻找如何去做。
  • 简短回答是否定的。我会推荐 7-zip 免费库。

标签: c zip zlib compression deflate


【解决方案1】:

zlib 提供了解压缩压缩数据和计算 CRC 所需的基本机制,这是解码 zip 文件所需的大部分内容。但是 zlib 不提供 zip 文件格式解码,即解码标题,您需要将 zlib 调用包装起来以进行解压缩和校验值计算。

zlib 确实带有 minizip,它位于源代码分发的 contrib 目录中,可以完成这项工作。你也可以看看libzip或者libarchive,它们使用了zlib,提供了zip文件的功能。

【讨论】:

  • 感谢您的回答。我想我现在已经想出了如何做到这一点。
【解决方案2】:

事实上,新的办公文件实际上是 .zip 文件。不是旧的 .doc 和 .xls,而是新的 .docx 和 .xlsx。如果您将它们重命名为 .zip 并打开它们,您会看到这一点。然后,您将看到内容为 .xml 文件。

示例代码类似于

    HZIP hz = OpenZip(AgentDLLZip, 0, ZIP_FILENAME);
    ZIPENTRYW ze;
    GetZipItemW(hz, 0, &ze);
    UnzipItem(hz, 0, ze.name, 0, ZIP_FILENAME);
    CloseZip(hz);

只需使用一些您可以找到here 的文件。

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多