2013-07-30 47 views
1

我的問題涉及拉鍊是隻有部分在iOS上提取的文件:解壓壓縮文件 - 確保一切提取

假設一個zip文件的提取過程中,該過程被中斷,使得只有部分文件實際上被提取。

確保所有文件確實被提取的最佳實踐是什麼?

回答

0
  1. 不要忽略來自I/O函數或zip框架的返回值。這通常是足夠的。
  2. 您可以隨時檢查文件是否存在,然後您可以檢查其大小。
  3. 您可以檢查提取的數據的CRC。

大多數拉鍊框架做2個& 3檢查內部,他們用透明的返回值或NSError回報PARAM報告錯誤。永遠不要忽略返回值。

+0

感謝您的建議,我同意你所說的一切。但是,如果zip文件提取在中間停止了 - 例如,如果應用程序被用戶關閉,該怎麼辦?有沒有一種最佳實踐方法來確保所有文件的提取都沒有經過每一個文件? (例如,執行「全部或全部」提取的zip歸檔程序) – am1987

+0

@ am1987如果zip解析程序執行「全部或全部」操作並且用戶中斷了進程(例如關閉應用程序),那麼您應該假設沒有任何東西提取。如果zip解壓縮程序非常聰明,它應該爲您提供關於進度的信息,並且可以在單獨的文件中跟蹤它,並從停止點開始繼續。但是,如果您想恢復取消歸檔,則還必須驗證歸檔未被更改!通常,應用程序不會恢復中斷的非歸檔,並且用戶通常會留下部分文件。 – Sulthan