WinRAR可以說是現在最風光的壓縮軟件了,風頭逐漸蓋過了老牌的WinZip!超高的壓縮比,簡單易用的界面,強大的功能……不過不知道大家有沒有碰到過這樣的情況:辛辛苦苦從網上下載了數百兆的RAR壓縮包文件,正解壓時突然彈出一個讓你心驚肉跳對話框!告訴你出錯了……
一、判斷出錯原因
出錯信息為“CRC失敗於加密文件(口令錯誤?)”(RAR壓縮包設了密碼,但密碼輸入錯誤或是密碼輸入正確但循環冗余校驗碼(CRC)出錯!只不過因為此RAR壓縮包加了密碼的緣故,所以WRAR才猜測說可能是“口令錯誤”)
區分上面兩種錯誤的方法:如果密碼輸入錯誤的話是無法解壓出任何文件的!但如果壓縮包內有多個文件,且有一部分文件解壓縮出來了,那麼應該是RAR壓縮包循環冗余校驗碼(CRC)出錯而不是密碼輸入錯誤。
循環冗余校驗碼(CRC)出錯,這是最常見的情況,這也是本文討論的重點!和上面的幾種解壓縮出錯不同,這種情況是和RAR壓縮包損壞有關的。
原因有幾種:
(1)網絡傳輸狀況不好(如斷線過多,開的線程過多,服務器人太多導致不能連接太多等)導致下載下來的文件損壞!
(2)站點提供的的RAR壓縮包本來就是損壞的(這就沒辦法了,除非此壓縮包中含有回復記錄)。
(3)所使用的下載工具不夠完善,比如有的下載工具多開了幾個線程後,下載的收尾工作很慢,有些時候下載到99%時數據就不再傳輸了,一定要人工操作才能結束(先停止下載接著再開始)。筆者就碰到過好幾次這樣的情況。結果是文件下載下來以後解壓縮到快結束時CRC出錯。
二、應急解決
1.利用恢復記錄
想要修復CRC是有條件的,必須是此RAR壓縮包中有恢復記錄,而此恢復記錄是RAR壓縮包被壓縮時的可選項。
而WinRAR壓縮時默認是不放置恢復記錄的,如果提供的是這樣的RAR壓縮包,那麼用戶自己想要修復CRC錯誤是不可能的。
2.釜底抽薪
如果RAR壓縮包中的文件是那種即使文件有缺失仍能正常或較為正常地使用的(其實大多數的文件對部分數據損壞都不是非常敏感的),那便可以使出我們的終極殺招:釜底抽薪法!
其原理就是讓RAR壓縮包內損壞的文件解壓縮出來,不理會WinRAR的警告,能解壓多少就解壓多少。解壓縮軟件還是用WinRAR,不過要做小小的設置。
在右鍵點擊解壓縮文件後跳出的窗口裡,把“保留被損壞的文件”復選框選中,點擊確定開始解壓縮。不要理會解壓縮出錯的信息,解壓縮結束之後你會發現損壞的文件被解壓出來了。經過這樣解壓出來的損壞文件能正常使用的幾率還是非常高的。
三、做好保險工作
1.做好恢復記錄
原始RAR壓縮包在壓縮時,如果選擇放置恢復記錄,這樣用戶下載後即使CRC出錯也有自己修復的機會!
2.采取分卷壓縮
采取分卷壓縮的方法便可較大地減少因為出現不可恢復的錯誤帶來的損失。
3.老文件也加恢復記錄
有人也許會問,新壓縮的RAR壓縮包可以加入恢復記錄,那麼已經壓縮過的RAR包有沒有辦法也加上恢復記錄呢?給已經壓縮好的RAR壓縮包加上恢復紀錄是有辦法的。
只需要打開壓縮包,在“命令”菜單中選擇“保護檔案文件”即可。
四、小常識:
其實RAR壓縮包出錯的解決方法主要是以預防為主!如果沒有預防,等到真正出了問題,技術上也是沒辦法完美解決的!像循環冗余校驗碼(CRC)出錯這種情況,如果RAR壓縮包不包含恢復記錄的話,用戶自己想要修復CRC是不可能的!本文的主要目的是想告訴大家一些出錯的原因以及討論一些從根本上預防出錯和把損失減少到最小的辦法而已!