使用 Qt 压缩文件夹/文件
我想知道 Qt 中是否有任何可以压缩文件夹或文件的类。我使用 QProcess 进行压缩,它被压缩了,但我无法使用普通的压缩工具解压缩它。谁能告诉我如何使用 Qt api 类压缩文件夹/文件?
I would like to know if there is any class in Qt which can zip a folder or file. I used QProcess to compress, it got compressed but I am unable to uncompress it using a normal zip tool. Can anyone let me know how can we compress a folder/file using Qt api classes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
几年前我遇到过这样的问题,这是我的解决方案:
1)。获取 QuaZip(这里是链接文本)
2)。将 quazip 源代码包含到您的项目文件
标题:
源代码:
3)。添加标题
4).使用提取功能:
和存档功能:
5)。享受;)
更新:对于CapDroid。
A few years ago I had such a issue, and here is my solution:
1). get QuaZip (here is the link text)
2). include quazip sources to your project file
Headers:
Sources:
3). add headers
4). use extract function:
and archive function:
5). enjoy ;)
UPDATE: for CapDroid.
我使用的是 Qt 5.12 版本。
在 pro 文件中,添加“QT += gui-private”。
在cpp文件中,例如:
I'm using Qt 5.12 version.
In pro file, add "QT += gui-private".
In the cpp file, example:
我认为你不能。据我所知,qcompress 和 quncompress 仅提供流的压缩等。这意味着它们不会创建真正的 zip 文件所需的标头(也说明文件中包含哪些文件)。
然而,有一个名为 QuaZip 的开源 Qt 库,它使用 zlib(随 qt 一起提供)并提供该库。
I don't think you can. As far as I know qcompress and quncompress only provide compressing of streams etc. This means they will not create the headers needed for a real zipfile (which also say which files are in the file).
However there is an open source Qt library called QuaZip which uses zlib (comes with qt) and provides just that.
https://libzip.org/license/ 拥有 BSD 许可证,您可以在任何地方使用它
示例(在 Linux 上)
在 .pro 文件中:
zip 文件的功能:
https://libzip.org/license/ has BSD licence you can use it anywhere
Example (On Linux)
In
.pro
file:Function that zip file: