2009-07-27 22 views
4

boost :: iostreamsクラスを使用して、C++でファイルを抽出する方法を探しています。boost :: iostreamsで圧縮ファイルを抽出

boost documentationに例があります。しかし、圧縮ファイルの内容をstd :: coutに出力します。 私はファイル構造にそれを抽出する方法を探しています。

誰かがそれを行う方法を知っていますか?

ありがとうございます!

+0

「ファイル構造」とはどういう意味ですか? – jalf

+0

私は、複数の他のファイルとディレクトリを含む圧縮ファイルについて話しています。 –

答えて

5

Boost.IOStreamsは圧縮されたアーカイブをサポートしていません。圧縮されたファイルは1つだけです。 .zipまたは.tarファイルをディレクトリツリーに抽出する場合は、別のライブラリを使用する必要があります。

1

boost :: iostreams :: copyの呼び出しは、2番目のパラメータとしてostreamをとります。 ofstreamを出力ファイル名で作成してみましたか?

+0

Jepは、すでにそれを試しています。その中には、1つのファイルだけが作成され、そこにはゴミがたくさんあります。完全なファイル構造は作成されません... –

+0

"完全なファイル構造"とは何ですか? 実際に正しい出力をcoutで生成していますか?もしそうなら、これを動作させるのは簡単なはずです... – bacar

2

このドキュメントの例では、ファイルを解凍して結果を別のストリームにプッシュする方法を示しています。

代わりに出力をメモリ内配列にする場合は、代わりにboost::iostreams::stream<boost::iostreams::array_source>のストリームを使用できます。

これは、基本的に配列を囲むストリームラッパーです。

出力を「ファイル構造」にしたいと思っているときは、どういう意味なのか分かりません。

1

あなたはおそらくそのライブラリを望んでいません。あなたは他のものを見回したくなるかもしれません。

など。 zziplib

関連する問題