我想在解壓縮之前檢查壓縮文件是否損壞。如果手動打開損壞的zip文件,則會引發錯誤。它如何在C#中完成,以便如果zip損壞,將拋出異常。如何使用.net 3.5檢查壓縮文件是否損壞
P.s它可能在.net 4.5中。但我需要它在3.5
感謝
我想在解壓縮之前檢查壓縮文件是否損壞。如果手動打開損壞的zip文件,則會引發錯誤。它如何在C#中完成,以便如果zip損壞,將拋出異常。如何使用.net 3.5檢查壓縮文件是否損壞
P.s它可能在.net 4.5中。但我需要它在3.5
感謝
DotNetZip,在.NET語言處理ZIP文件的免費開源庫,支持CheckZip()方法你想要做什麼。您可以選擇不同級別的保證。基本級別只是檢查元數據的一致性。最完整的級別將zip文件完全提取到bitbucket中,以驗證實際的壓縮數據沒有損壞。
更新:
Section 4.3.7 of this page說,壓縮後的大小爲18字節開始你可以嘗試讀取並將其與大小的文件4個字節。
不過,我認爲這是檢查是否zip文件損壞的原因有兩個幾乎無用:
一些zip文件包含的不僅僅是拉鍊部分更多的字節。對於 示例,self-extracting archives有一個可執行部分尚未 他們仍然有效的zip。
該文件可能會損壞而不改變其大小。所以,我建議 計算CRC
保證檢查 腐敗的方法。
感謝您的答覆...以及,我需要一個像執行對zip文件的操作應該會拋出一個異常,如果它損壞了...就像我提到的,而手動打開它會引發錯誤...一些邏輯複製這種行爲是我想要的... – user2316771
歡迎您,我更新了我的回答,請檢查它:) –
您可以使用CRC32檢查。但是你必須有損壞的和無損的壓縮文件CRC32。所以你可以輕鬆地比較它們。 –
感謝您的回覆...我不會有一個無損文件比較...我需要檢查是否有任何給定的壓縮文件損壞或不 – user2316771