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