2012-09-17 54 views
-1

閱讀在使用zlib的1.2.7minizip閱讀ZIP檔案,我發現它的唯一可能對我來說,讀入一個字節的緩衝區。我將這些數據傳遞給另一個庫進行處理,但該庫要求數據的格式爲FILE*從ZIP檔案

我可以在內存中使用字節緩衝區創建FILE*嗎?

+0

zlib用於讀取/寫入壓縮文件,而不是zip壓縮文件。對於這一點,參見[ziplib](http://nih.at/libzip/)。 –

+0

他正在使用minizip,它也適用於zip檔案。 minizip和ziplib都使用zlib。 –

回答

1

爲什麼這個問題使用C++標記? C的源和目的地不可擴展。因此,您需要依賴平臺特定的擴展。在C++中,你可以創建一個合適的流緩衝區來插入IOStreams。然而,.zip壓縮文件不是平面文件,也就是說,您需要考慮如何指定實際要提取的對象。不過,這仍然是可行的。

+0

我只會從檔案中讀取/我知道/具有特定數量的文件,並且所有這些文件都有特定的名稱。這是你在最後一次發言前的意思嗎? –

+0

是的,大致。我不會實現一個流緩衝區來提取任何特定的文件或文件集,但以指定.zip文件和包含文件的方式來完成。我用於解壓縮的API zlib沒有提供訪問歸檔組件的接口。看起來有一個附加,但:http://www.winimage.com/zLibDll/minizip.html。 –

+0

是的,我知道那個附加組件。主要是因爲我已經在使用它; o(對不起,我忘了提前說過)。 –