C++ 的压缩 API
我正在制作一个应用程序,它首先压缩文件,然后传输它。我在 UNIX 环境中使用 C++ 作为语言。我无法找到任何适合我需要的图书馆。我查了一下,但找不到gunzip 的任何API。同样,7zip 也有仅适用于 Windows 的 SDK。如果库可以在压缩过程中提供完成/剩余百分比,那就太好了。
我读到了 Gzstream Library,它是 Zlib 的包装器,也是 Boost IOStreams。
请提出替代方案(如果有)或该库的优缺点。
i am making an application which first compresses a file and then transfer it. I am using C++ as language in UNIX environment. I am unable to find any suitable library for my need. I checked but couldn't find any API for gunzip. Similarly 7zip also has SDK for windows only. It would be great if the library could provide percentage completed/left while the compression is in progress.
I read about Gzstream Library which is a wrapper of Zlib and also Boost IOStreams.
Please suggest the alternatives (if any) or the pros and cons of the library.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
zlib 或 bzip2 - 易于使用且经过充分测试。 bzip2 往往压缩得更好,zlib 往往更快。或者,如果速度最重要,您可以使用 QuickLZ。
zlib or bzip2 - Easy to use and well tested. bzip2 tends to compress better, zlib tends to be faster. Or you could use QuickLZ if speed matters most of all.
7z SDK 有一个到 Linux/UNIX 的端口:xz 和 liblzma。它存在于最新的 Linux 发行版中。
There is a port of the 7z SDK to Linux/UNIX: xz and liblzma. It's in most recent Linux distributions.
就像 Android Eve 所说,如果您不介意开销,还有 POCO 的 Zip 组件。
Like Android Eve said, if you don't mind the overhead, there's also POCO's Zip component.
如果您不介意添加 wxWidgets 的开销,以换取方便,您可能需要查看 wxZlibOutputStream 和 wxZlibInputStream。
If you don't mind adding the overhead of wxWidgets, in exchange for convenience, you may want to look at wxZlibOutputStream and wxZlibInputStream.