2015-07-01 256 views
0

我想在解壓縮之前檢查壓縮文件是否損壞。如果手動打開損壞的zip文件,則會引發錯誤。它如何在C#中完成,以便如果zip損壞,將拋出異常。如何使用.net 3.5檢查壓縮文件是否損壞

P.s它可能在.net 4.5中。但我需要它在3.5

感謝

+0

您可以使用CRC32檢查。但是你必須有損壞的和無損的壓縮文件CRC32。所以你可以輕鬆地比較它們。 –

+0

感謝您的回覆...我不會有一個無損文件比較...我需要檢查是否有任何給定的壓縮文件損壞或不 – user2316771

回答

4

DotNetZip,在.NET語言處理ZIP文件的免費開源庫,支持CheckZip()方法你想要做什麼。您可以選擇不同級別的保證。基本級別只是檢查元數據的一致性。最完整的級別將zip文件完全提取到bitbucket中,以驗證實際的壓縮數據沒有損壞。

更新:

Section 4.3.7 of this page說,壓縮後的大小爲18字節開始你可以嘗試讀取並將其與大小的文件4個字節。

不過,我認爲這是檢查是否zip文件損壞的原因有兩個幾乎無用:

  1. 一些zip文件包含的不僅僅是拉鍊部分更多的字節。對於 示例,self-extracting archives有一個可執行部分尚未 他們仍然有效的zip。

  2. 該文件可能會損壞而不改變其大小。所以,我建議 計算CRC保證檢查 腐敗的方法。

+0

感謝您的答覆...以及,我需要一個像執行對zip文件的操作應該會拋出一個異常,如果它損壞了...就像我提到的,而手動打開它會引發錯誤...一些邏輯複製這種行爲是我想要的... – user2316771

+0

歡迎您,我更新了我的回答,請檢查它:) –

相關問題