2009-07-27 111 views
4

我正在尋找一種方法來使用boost :: iostreams類在C++中提取文件。使用boost :: iostreams提取壓縮文件

boost documentation中有一個例子。但它將壓縮文件的內容輸出到std :: cout。 我正在尋找一種方法將其解壓縮到文件結構中。

有人知道該怎麼做嗎?

謝謝!

+0

你是什麼意思的「文件結構」? – jalf 2009-07-27 16:12:17

+0

我正在談論一個包含多個其他文件和目錄的壓縮文件。 – 2009-07-27 16:29:01

回答

5

Boost.IOStreams不支持壓縮存檔,只是單個壓縮文件。如果要將.zip或.tar文件解壓縮到目錄樹,則需要使用其他庫。

1

在我看來像boost :: iostreams :: copy的調用需要一個ostream作爲第二個參數。你有沒有嘗試用你的輸出文件名創建一個ofstream並使用它?

2

文檔中的示例顯示瞭如何解壓文件並將結果推送到另一個流。

如果您希望將輸出定向到內存數組,則可以使用類型爲boost::iostreams::stream<boost::iostreams::array_source>的流。

這基本上是一個數組的流包裝。

我不確定你說什麼時你想在「文件結構」中輸出的意思。

1

你可能不想要那個庫。您可能想要尋找其他人。

E.g. zziplib