2011-03-10 168 views
4

有沒有辦法在Adobe AIR中從壓縮文件中提取單個文件?從zip壓縮文件中提取壓縮文件而不將整個文件加載到內存中

我使用NoChumps zip庫從zip中提取文件。在這個庫中,整個IDataStream被加載到內存中,然後你可以很容易地提取文件條目。如果郵政編碼爲5到10MB,則不存在任何問題。但是,當zip是80MB,其中有80MB被加載到內存中。這會導致應用在移動設備上崩潰並運行緩慢。根據zip規範,

「ZIP文件通過位於文件末尾的中央目錄進行標識,這允許附加新文件。該目錄存儲條目的名稱列表(文件或目錄),以及其他關於該條目的元數據,以及指向ZIP文件的偏移量,指向實際的條目數據。「

此外,我沒有控制zip文件的大小,但大多數平均值是60到100MB。裏面的文件是〜4MB。

回答

2

這是不可能的彎曲,但可能AIR。 AIR獲得了隨機訪問的File類,允許讀取zip文件列表。我使用了Coltware的airxzip,它對我很好。創建ZipFileReader,打開您的zip文件,請致電getEntries(),找到您需要的條目並致電reader.unzip(entry)

+0

太棒了!謝謝! – 2011-03-11 11:36:56

1

快速回答 - 不,這是不可能的。

長的答案 - 你需要使用zlib的像一個圖書館,有一個安裝在機器上的輔助程序還

+0

好(去角落crys):( – 2011-03-11 01:17:29

相關問題