使用boost::iostreams解压缩文件

4
我正在寻找一种使用boost::iostreams类在C++中提取文件的方法。
boost文档中有一个例子。但是它将压缩文件的内容输出到std::cout,我正在寻找一种将其提取到文件结构中的方法。
有人知道如何做吗?
谢谢!

“文件结构”是什么意思? - jalf
我在谈论一个压缩文件,其中包含多个其他文件和目录。 - Pieter Hoste
4个回答

6
Boost.IOStreams不支持压缩文件夹,只支持单个压缩文件。如果你想将.zip或.tar文件解压到目录树中,你需要使用另一个库。

2
文档中的示例展示了如何解压文件并将结果推送到另一个流中。
如果您希望将输出定向到内存数组中,可以使用类型为boost::iostreams::stream<boost::iostreams::array_source>的流。
这基本上是一个围绕数组的流包装器。
但是,当您说希望在“文件结构”中获得输出时,我不确定您的意思。

1

在我看来,调用boost::iostreams::copy的第二个参数应该是ostream。你是否尝试使用你的输出文件名创建一个ofstream并使用它呢?


是的,我已经尝试过了,那只会创建一个文件,里面充满了垃圾,它不会创建完整的文件结构... - Pieter Hoste
“完整的文件结构”是什么意思? 如果确实在cout上产生了正确的输出,那么让它正常工作应该很容易... - bacar

1

你可能不需要那个库。你可以看看其他的。

例如 zziplib


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接