使用 boost::iostreams 提取压缩文件

发布于 2024-07-29 09:03:39 字数 284 浏览 12 评论 0原文

我正在寻找一种使用 boost::iostreams 类在 C++ 中提取文件的方法。

boost 文档中有一个示例。 但它将压缩文件的内容输出到std::cout。 我正在寻找一种将其提取到文件结构的方法。

有人知道该怎么做吗?

谢谢!

I'm searching for a way to extract a file in c++ by using the boost::iostreams classes.

There is an example in the boost documentation. But it outputs the content of the compressed file to std::cout.
I'm looking for a way to extract it to a file structure.

Does anybody know how to do that?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

蝶舞 2024-08-05 09:03:39

Boost.IOStreams 不支持压缩档案,仅支持单个压缩文件。 如果要将 .zip 或 .tar 文件提取到目录树,则需要使用不同的库。

Boost.IOStreams does not support compressed archives, just single compressed files. If you want to extract a .zip or .tar file to a directory tree, you'll need to use a different library.

◇流星雨 2024-08-05 09:03:39

文档中的示例显示了如何解压缩文件并将结果推送到另一个流。

如果您希望将输出定向到内存数组,则可以使用 boost::iostreams::stream 类型的流。

这基本上是一个围绕数组的流包装器。

当你说你想要“文件结构”中的输出时,我不确定你的意思是什么。

The example in the documentation shows how to decompress the file and push the result to another stream.

If you want the output to be directed to an in-memory array instead, you can use a stream of type boost::iostreams::stream<boost::iostreams::array_source>instead.

That is basically a stream-wrapper around an array.

I'm not sure what you mean when you say you want the output in "a file structure" though.

昔日梦未散 2024-08-05 09:03:39

在我看来,对 boost::iostreams::copy 的调用将 ostream 作为第二个参数。 您是否尝试过使用输出文件名创建一个 ofstream 并使用它?

Looks to me like the call to boost::iostreams::copy takes an ostream as the second parameter. Have you tried creating an ofstream with your output file name and using that?

小梨窩很甜 2024-08-05 09:03:39

您可能不想要那个库。 您可能想四处寻找其他一些。

例如 zziplib

You probably don't want that library. You might want to look around for some others.

E.g. zziplib

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文