2011-04-26 43 views
1

如何在C++中压缩目录。我读了这个问题:How do I zip a directory of files using C++?但我宁愿使用类似gzip,zlibboost(因为我不想向项目添加新的库)的方式。 Winapi方式也是可以接受的(如果存在的话)。我不想开始新的过程。C++中的Zip目录

我想要一个代码示例。在此先感谢

回答

2

你想要zip,但你不想使用任何libraires?

你想被特定许可绑定吗?如果是这样,那么只需将zlib和zip插件中的所有代码复制到您自己的代码中即可。

如果你不能使用他们的许可证,然后得到规格并编写你自己的洁净室实施 - 确保你没有看到zlib或邮编基地,虽然。

另一种方法是捆绑免费提供的zip命令行客户端,并与系统称之为()调用

编辑:如果你的意思是你已经在使用zlib的那么minizip没有目录的东西 - 它通常包括在contrib目录中使用zlib

+1

我相信他已经在使用'gzip','zlib'或'boost',但不想添加* other *库。 – Pablo 2011-04-26 16:28:32

+0

我并不是指拒绝zlib。其实我想使用它,但我不知道如何使用它来压缩目录。如果你可以用zlib完成这个工作,你可以写吗? – Loom 2011-04-26 16:32:01

+0

我无法使用system()调用,因为我不想启动新进程 – Loom 2011-04-26 16:34:10

1

您可以使用包含压缩功能的boost iostream。看看这里的文档: http://www.boost.org/doc/libs/1_46_1/libs/iostreams/doc/index.html

看来,实际上在这种情况下,这将不适用于文件目录。

+0

如果可能,您可以扩展答案吗?据我了解,boost支持压缩流,而不是文件。看看这个问题http://stackoverflow.com/questions/4961155/boostiostream-zlib-compressing-multiple-files-into-one-archive/4961334#4961334 – Loom 2011-04-26 16:04:59

+0

啊,看来你确实是对的。我编辑了我的帖子。我很抱歉。我以前只在流中使用过它,并且假定它也适用于文件,但是我找不到证据证明它的确存在。如果其他人知道它会起作用,请让我知道。 :) – Bart 2011-04-26 16:12:50