1

我正在创建一个可以读取 .docx 纯文本的 C++ 程序。我的攻击计划是将 .docx 重命名为 .zip,然后解压缩。然后,我将包含文档文本的 .xml 文件重命名为 .txt 并将其解析出来。

现在我已经弄清楚了很容易的重命名。我现在正在努力解压缩。我非常精通 C++,但这是我第一次将自己扩展到真实的应用程序并在 STL 库之外使用它。

起初,我尝试了 zlib 库中的许多 C++ 包装器,但无法让它们中的任何一个编译或正常工作(可能是由于环境位于 Cygwin 中)。出于这个原因,我似乎必须默认使用凌乱的 zlib 代码来执行此操作。但是从所有文档和示例中,我可以发现它仅显示 zlib 用于读取 .zip,该 .zip 是一个文件而不是多个文件的压缩。我现在不知道从哪里开始,就像我之前所说的,对于 STL 之外的领域是全新的,我感到非常迷茫。

非常感谢任何帮助或指导!

谢谢,迈克尔

4

3 回答 3

1

zlib 用于 GZip 压缩,而不是 ZIP 压缩(详见此处)。

因此,您最好使用unzipCygwin 中提供的实用程序,并且可用于许多平台

于 2009-08-04T13:34:29.433 回答
1

我不认为 zlib 直接支持多文件 zip(可能是错误的),因此您可能需要寻找替代方案。顺便说一句,您可能还需要考虑从 cygwin 切换到MinGW,除非您确实需要 cygwin 提供的 POSIX/UNIX 兼容性。

于 2009-08-04T13:36:38.480 回答
1

我一直在处理类似的问题,但还没有一个很好的解决方案。

zlib 目前不支持多个文件。

请参阅:C/C++ 打包和压缩

于 2009-08-04T13:37:35.250 回答