閱讀在使用zlib的1.2.7和minizip閱讀ZIP檔案,我發現它的唯一可能對我來說,讀入一個字節的緩衝區。我將這些數據傳遞給另一個庫進行處理,但該庫要求數據的格式爲FILE*
。從ZIP檔案
我可以在內存中使用字節緩衝區創建FILE*
嗎?
閱讀在使用zlib的1.2.7和minizip閱讀ZIP檔案,我發現它的唯一可能對我來說,讀入一個字節的緩衝區。我將這些數據傳遞給另一個庫進行處理,但該庫要求數據的格式爲FILE*
。從ZIP檔案
我可以在內存中使用字節緩衝區創建FILE*
嗎?
爲什麼這個問題使用C++標記? C的源和目的地不可擴展。因此,您需要依賴平臺特定的擴展。在C++中,你可以創建一個合適的流緩衝區來插入IOStreams。然而,.zip壓縮文件不是平面文件,也就是說,您需要考慮如何指定實際要提取的對象。不過,這仍然是可行的。
我只會從檔案中讀取/我知道/具有特定數量的文件,並且所有這些文件都有特定的名稱。這是你在最後一次發言前的意思嗎? –
是的,大致。我不會實現一個流緩衝區來提取任何特定的文件或文件集,但以指定.zip文件和包含文件的方式來完成。我用於解壓縮的API zlib沒有提供訪問歸檔組件的接口。看起來有一個附加,但:http://www.winimage.com/zLibDll/minizip.html。 –
是的,我知道那個附加組件。主要是因爲我已經在使用它; o(對不起,我忘了提前說過)。 –
zlib用於讀取/寫入壓縮文件,而不是zip壓縮文件。對於這一點,參見[ziplib](http://nih.at/libzip/)。 –
他正在使用minizip,它也適用於zip檔案。 minizip和ziplib都使用zlib。 –