4

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

ブーストのドキュメントに例があります。ただし、圧縮ファイルの内容を std::cout に出力します。ファイル構造に抽出する方法を探しています。

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

ありがとう!

4

4 に答える 4

6

Boost.IOStreams は圧縮アーカイブをサポートせず、単一の圧縮ファイルのみをサポートします。.zip または .tar ファイルをディレクトリ ツリーに抽出する場合は、別のライブラリを使用する必要があります。

于 2009-07-27T16:20:22.600 に答える
2

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

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

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

ただし、出力を「ファイル構造」にしたいと言ったときの意味がわかりません。

于 2009-07-27T16:14:08.867 に答える
1

おそらく、そのライブラリは必要ありません。他の人を探してみるといいかもしれません。

例: zziplib

于 2009-07-27T16:38:32.470 に答える
1

boost::iostreams::copy への呼び出しは、2 番目のパラメーターとして ostream を取るように見えます。出力ファイル名でオフストリームを作成してそれを使用しようとしましたか?

于 2009-07-27T16:03:25.380 に答える