C++ 中的 Zip 目录
如何在 C++ 中压缩目录。我读了这个问题: How do I zip a 目录但我更喜欢使用 gzip、zlib 和 boost 之类的方法(因为我不想要向项目添加新的库)。 Winapi-way 也是可以接受的(如果存在的话)。我不想开始新的流程。
我想要一个代码示例。提前致谢
How can I zip directory in C++. I read this question: How do I zip a directory of files using C++? But I'd prefer a way that uses something like gzip
, zlib
and boost
(because I do not want to add new libs to the project). Winapi-way is also acceptable (if it exists). And I do not want to start new process.
I would like a code sample. Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您想要 zip 但不想使用任何库?
您是否想要受特定许可证的约束 - 如果是这样,只需将 zlib 和 zip 附加组件中的所有代码复制到您自己的代码中即可。
如果您无法使用他们的许可证,请获取规范并编写您自己的洁净室实现 - 但请确保您没有看到 zlib 或 zip 代码库。
另一种选择是捆绑一个免费的 zip 命令行客户端,并通过 system() 调用
编辑来调用它:如果您的意思是您已经在使用 zlib,则 minizip 执行目录操作 - 它通常包含在 contrib 目录中的 zlib 中
You want zip but you don't want to use any libraires?
Do you want to be bound by a particular licence - if so then simply copy all the code from zlib and the zip add-on into your own code.
If you can't use their licence then get the specs and write your own clean room implementation - make sure that you haven't seen the zlib or zip code base though.
The other alternative is to bundle a freely available zip command line client and call it with a system() call
edit: if you mean you are already using zlib then minizip does the directory stuff - it's usually included with zlib in the contrib directory
您可以使用包含压缩功能的 boost iostream。请查看此处的文档: http://www .boost.org/doc/libs/1_46_1/libs/iostreams/doc/index.html看来实际上在这种情况下这不适用于文件目录。
You can use boost iostream which includes compression functionalities. Have a look at the documentation here: http://www.boost.org/doc/libs/1_46_1/libs/iostreams/doc/index.htmlIt seems that in fact in this case that won't work for a directory of files.