專利名稱:一種文件修復(fù)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種文件修復(fù)方法及裝置。
背景技術(shù):
移動(dòng)存儲(chǔ)設(shè)備是指可以在不同終端間移動(dòng)的存儲(chǔ)設(shè)備,包括U盤、移動(dòng)硬盤等等,人們經(jīng)常使用移動(dòng)存儲(chǔ)設(shè)備進(jìn)行文件的備份、攜帶及轉(zhuǎn)移。一些移動(dòng)存儲(chǔ)設(shè)備帶有USB(Universal Serial BUS,通用串行總線)接口,在需要對(duì)這種移動(dòng)存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)的讀寫時(shí),需要將其通過USB 口連接到計(jì)算機(jī)上,并且在使用完畢之后,需要按照規(guī)定的程序?qū)⑵鋸挠?jì)算機(jī)上卸載之后才能從USB 口拔出。例如,通常需要用戶點(diǎn)擊任務(wù)欄右下角中顯示為“安全刪除硬件”的按鈕,當(dāng)彈出“安全刪除USB Mass Storage Device-驅(qū)動(dòng)器”提示之后,點(diǎn)擊該提示,等到“安全刪除硬件”按鈕消失之后,即可將移動(dòng)存儲(chǔ)設(shè)備從USB 口拔出。但是,在日常應(yīng)用中,如果將移動(dòng)存儲(chǔ)設(shè)備從USB 口拔出之前,忘記了執(zhí)行卸載操作,或者執(zhí)行卸載操作不徹底(例如提示“無法停止”等等),或者由于誤操作等,而直接將移動(dòng)存儲(chǔ)設(shè)備從USB 口拔了出來(通常將這種現(xiàn)象統(tǒng)稱為移動(dòng)存儲(chǔ)設(shè)備的“非法拔出”),則可能會(huì)造成移動(dòng)存儲(chǔ)設(shè)備中的文件被破壞。因此,迫切需要本領(lǐng)域技術(shù)人員解決的技術(shù)問題就在于,如果移動(dòng)存儲(chǔ)設(shè)備被非法拔出,并且其中的文件被破壞,如何對(duì)被破壞的文件進(jìn)行修復(fù)。
發(fā)明內(nèi)容
本發(fā)明提供了一種文件修復(fù)方法及裝置,能夠在移動(dòng)存儲(chǔ)設(shè)備被非法拔出,并且其中的文件被破壞的情況下,對(duì)被破壞的文件進(jìn)行修復(fù)。本發(fā)明提供了如下方案
一種文件修復(fù)方法,包括
檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作;
當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息;
如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存;
當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損
壞;
如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。其中,所述利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)包括
將所述保存的記錄中的文件來源路徑提供給用戶,以便用戶從所述文件來源路徑重新獲取所述文件,用以替換所述已損壞的文件。其中,所述利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)包括 從所述保存的記錄中的文件來源路徑獲取所述文件;
用所述獲取到的文件替換所述已損壞的文件。優(yōu)選地,如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,所述方法還包括
將存入到所述移動(dòng)存儲(chǔ)設(shè)備中的文件進(jìn)行備份;
如果利用所述保存的記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則利用所述備份的文件對(duì)所述已損壞的文件進(jìn)行修復(fù)。其中,所述判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞包括
識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí);如果不具有,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞;
如果具有,則根據(jù)所述文件來源路徑讀取源文件的數(shù)據(jù),將所述移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與所述源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞。優(yōu)選地,還包括
如果檢測(cè)到正常拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行銷毀。一種文件修復(fù)裝置,包括
監(jiān)控單元,用于檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操
作;
記錄單元,用于當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息;
保存單元,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保
存;
判斷單元,用于當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞;
修復(fù)單元,用于如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。其中,所述修復(fù)單元包括
路徑提供子單元,用于將所述保存的記錄中的文件來源路徑提供給用戶,以便用戶從所述文件來源路徑重新獲取所述文件,用以替換所述已損壞的文件。其中,所述修復(fù)單元包括
文件獲取子單元,用于從所述保存的記錄中的文件來源路徑獲取所述文件;
替換子單元,用于用所述獲取到的文件替換所述已損壞的文件。優(yōu)選地,還包括
文件備份單元,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,將存入到所述移動(dòng)存儲(chǔ)設(shè)備中的文件進(jìn)行備份;
補(bǔ)充修復(fù)單元,用于如果利用所述保存的記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則利用所述備份的文件對(duì)所述已損壞的文件進(jìn)行修復(fù)。其中,所述判斷單元包括
識(shí)別子單元,用于識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí);如果不具有,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞; 比對(duì)子單元,用于如果具有,則根據(jù)所述文件來源路徑讀取源文件的數(shù)據(jù),將所述移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與所述源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞。優(yōu)選地,還包括
銷毀單元,用于如果檢測(cè)到正常拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行銷毀。根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果
通過本發(fā)明,可以在檢測(cè)到向移動(dòng)存儲(chǔ)設(shè)備存入文件的操作時(shí),對(duì)該存入的文件的來源路徑以及移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)進(jìn)行記錄,一旦檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備被非法拔出時(shí),就可以將該記錄進(jìn)行保存;這樣,當(dāng)檢測(cè)到該移動(dòng)存儲(chǔ)設(shè)備再次被插入時(shí),可以首先判斷其中的文件是否被破壞,如果是,則可以通過該文件的來源路徑對(duì)被破壞的文件進(jìn)行修復(fù)。也即,通過本發(fā)明,能夠在移動(dòng)存儲(chǔ)設(shè)備被非法拔出,并且其中的文件被破壞的情況下,對(duì)被破壞的文件進(jìn)行修復(fù)。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的方法的流程 圖2是本發(fā)明實(shí)施例提供的裝置的示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。參見圖1,本發(fā)明實(shí)施例提供的文件修復(fù)方法包括以下步驟
SlOl :檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作;
首先需要說明的是,由于向移動(dòng)存儲(chǔ)設(shè)備中寫一個(gè)文件時(shí),并不是立刻保存到移動(dòng)存儲(chǔ)設(shè)備中,而是先存到緩沖區(qū)內(nèi),等積累到一定程度再一起保存到移動(dòng)存儲(chǔ)設(shè)備中。如果沒有成功卸載就非法拔出移動(dòng)存儲(chǔ)設(shè)備,系統(tǒng)是不知道的,fopen、fwrite等函數(shù)都依然返回正確,直到操作系統(tǒng)要把緩沖區(qū)中的數(shù)據(jù)存入到移動(dòng)存儲(chǔ)設(shè)備中的時(shí)候,才會(huì)提示I/O錯(cuò)誤,因此,很多數(shù)據(jù)都會(huì)因?yàn)檫@個(gè)不及時(shí)的錯(cuò)誤報(bào)告而丟失。由以上所述可知,在實(shí)際應(yīng)用中,如果執(zhí)行了向移動(dòng)存儲(chǔ)設(shè)備中存入文件的操作,則一旦移動(dòng)存儲(chǔ)設(shè)備被非法拔出,就會(huì)存在文件已損壞的風(fēng)險(xiǎn),并且已損壞的文件就是該被存入的文件,而移動(dòng)存儲(chǔ)設(shè)備中的其他原有文件,則一般不會(huì)已損壞。因此,在本發(fā)明實(shí)施例中,可以僅對(duì)向移動(dòng)存儲(chǔ)設(shè)備中存入文件的操作進(jìn)行監(jiān)控。其中,由于在移動(dòng)存儲(chǔ)設(shè)備通過USB接口插入,或者從USB 口拔出時(shí),USB驅(qū)動(dòng)程序都會(huì)對(duì)系統(tǒng)配置文件進(jìn)行修改,例如USB驅(qū)動(dòng)程序會(huì)在插入或拔出時(shí)往“ /proc/scsi/usb-storage-0/0”里面記上“Attached :Yes or No”,因此,通過查看這個(gè)文件就可以檢測(cè)移動(dòng)存儲(chǔ)設(shè)備是否插入或拔出了。S102:當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息;
其中,在向移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),通常是將計(jì)算機(jī)本地的某文件復(fù)制后,粘貼到移動(dòng)存儲(chǔ)設(shè)備中,或者將計(jì)算機(jī)本地的某文件“發(fā)送到”移動(dòng)存儲(chǔ)設(shè)備中,等等。因此,本發(fā)明實(shí)施例所述的“文件的來源路徑”就是指,存入移動(dòng)存儲(chǔ)設(shè)備的文件在計(jì)算機(jī)本地中的路徑。例如,某文件在計(jì)算機(jī)本地中的路徑是“F: \工作相關(guān)\XX. txt”,則將該文件存入到移動(dòng)存儲(chǔ)設(shè)備中時(shí),該文件的來源路徑就是“F:\工作相關(guān)\XX. txt”。移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息是指可以唯一標(biāo)識(shí)一個(gè)移動(dòng)存儲(chǔ)設(shè)備的信息,一個(gè)移動(dòng)存儲(chǔ)設(shè)備在出廠時(shí)都會(huì)帶有唯一性的標(biāo)識(shí),例如,U盤的序列號(hào)等等。因此,具體實(shí)現(xiàn)時(shí),就可以通過獲取移動(dòng)存儲(chǔ)設(shè)備的序列號(hào)來獲取移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息,例如,通過DriveGetSerial這一函數(shù),即可獲取到移動(dòng)存儲(chǔ)設(shè)備的序列號(hào),然后記錄下來即可。當(dāng)然,將一個(gè)移動(dòng)存儲(chǔ)設(shè)備插入到計(jì)算機(jī)上之后,可能會(huì)向其中存入多個(gè)文件,此時(shí),可以以表格的方式記錄下各個(gè)文件的來源路徑,這些文件的來源路徑對(duì)應(yīng)同一個(gè)移動(dòng)存儲(chǔ)設(shè)備標(biāo)識(shí)。S103 :如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存; 當(dāng)將移動(dòng)存儲(chǔ)設(shè)備從USB 口擦除時(shí),如果是采用正常的卸載程序成功卸載,則系統(tǒng)可
以產(chǎn)生一個(gè)代表正常拔出的消息,如“ I RP_MN_REMOVE_DEV I CE ” ;而如果非法拔出一個(gè)移動(dòng)存儲(chǔ)設(shè)備,則當(dāng)系統(tǒng)發(fā)現(xiàn)之后,會(huì)產(chǎn)生一個(gè)代表非法拔出的消息,如“IRP_MN_SURPRISE_REMOVAL”。因此,通過獲取系統(tǒng)產(chǎn)生的消息,即可判斷出移動(dòng)存儲(chǔ)設(shè)備是正常拔出,還是被非法拔出。如果被非法拔出,則可以將之前記錄的信息進(jìn)行保存,以供后續(xù)使用。當(dāng)然,如果是正常拔出,則一般情況下不會(huì)出現(xiàn)文件已損壞的現(xiàn)象,因此,為了避免對(duì)存儲(chǔ)空間造成浪費(fèi),可以將之前獲得的記錄進(jìn)行銷毀。S104:當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞;
如果再次檢測(cè)到有移動(dòng)存儲(chǔ)設(shè)備插入到USB 口,可以首先獲取該移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息(同樣可以采用DriveGetSerial函數(shù)來獲取移動(dòng)存儲(chǔ)設(shè)備的序列號(hào)的方式,當(dāng)然也可以采用其他方式來實(shí)現(xiàn),這里不進(jìn)行限定),然后查看保存的記錄中是否存在該標(biāo)識(shí)信息對(duì)應(yīng)的記錄,如果有,則證明該移動(dòng)存儲(chǔ)設(shè)備上次插入到該計(jì)算機(jī)上時(shí),曾經(jīng)被非法拔出過,進(jìn)而,就可以進(jìn)一步判斷其中的文件是否已損壞。其中,如前文所述,如果由于移動(dòng)存儲(chǔ)設(shè)備被非法拔出而對(duì)文件造成損壞,則通常是由于文件的數(shù)據(jù)還沒有完全寫入到移動(dòng)存儲(chǔ)設(shè)備造成的,因此,這種已損壞的文件在數(shù)據(jù)上通常是不完整的。而一個(gè)完整的文件通常會(huì)具有結(jié)束標(biāo)識(shí),因此,在判斷移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞時(shí),就可以首先識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí),如果不具有結(jié)束標(biāo)識(shí),則證明該文件的數(shù)據(jù)是不完整的,因此,可以確定該文件已經(jīng)已損壞。如果一個(gè)文件的數(shù)據(jù)具有結(jié)束標(biāo)識(shí),則可以根據(jù)該文件的來源路徑讀取源文件的數(shù)據(jù),將移動(dòng)存儲(chǔ)設(shè)備中的當(dāng)前文件的數(shù)據(jù)與源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致(例如,文件大小相等、MD5值相同等等),則確定該移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定該移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞?;蛘?,在實(shí)際應(yīng)用中,也可以直接將移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與源文件的數(shù)據(jù)進(jìn)行比對(duì),如果兩者一致,則證明文件未被破壞,如果不一致,則證明文件已經(jīng)被破壞。需要說明的是,本發(fā)明實(shí)施例所述的文件已損壞,可以包括文件全部損壞的情況,也可以包括部分損壞的情況(例如,一個(gè)文件包中的部分文件已損壞,就可以稱為部分損壞)。S105:如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。當(dāng)移動(dòng)存儲(chǔ)設(shè)備再次被插入時(shí),如果發(fā)現(xiàn)該移動(dòng)存儲(chǔ)設(shè)備在上次插入時(shí),被非法拔出,并且其中的文件已損壞,就可以利用之前保存的關(guān)于文件的來源路徑,對(duì)已損壞的文件進(jìn)行修復(fù)。具體在利用文件的來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)時(shí),可以采取自動(dòng)替換或者半自動(dòng)替換等多種實(shí)現(xiàn)方式。其中,所謂自動(dòng)替換是指,直接從記錄中的文件來源路徑獲取已損壞文件的源文件,然后直接用該源文件替換已損壞的文件即可。所謂半自動(dòng)替換是指,可以首先將記錄的文件來源路徑提供給用戶,然后由用戶手動(dòng)根據(jù)該來源路徑重新獲取文件,并替換已損壞的文件,等等。當(dāng)然還可以有其他的實(shí)現(xiàn)方式,這里不再一一列舉??傊?,在本發(fā)明實(shí)施例中,由于意識(shí)到存入到移動(dòng)存儲(chǔ)設(shè)備中的文件,通常是從計(jì)算機(jī)中拷貝過去的,因此,在計(jì)算機(jī)中通常保留有源文件,這樣,當(dāng)移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞時(shí),就可以利用計(jì)算機(jī)中保留的源文件,對(duì)其進(jìn)行修復(fù)。當(dāng)然,在實(shí)際應(yīng)用中,還可能出現(xiàn)以下情況當(dāng)移動(dòng)存儲(chǔ)設(shè)備再次被插入到計(jì)算機(jī)上時(shí),計(jì)算機(jī)中關(guān)于某已損壞文件的源文件可能已經(jīng)被刪除或者移動(dòng)到其他的路徑下,此時(shí),就無法根據(jù)文件的來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)了。為了應(yīng)對(duì)這種情況的發(fā)生,在本發(fā)明實(shí)施例中,還可以在檢測(cè)到非法拔出移動(dòng)存儲(chǔ)設(shè)備的消息時(shí),對(duì)存入到移動(dòng)存儲(chǔ)設(shè)備的文件進(jìn)行備份,這樣,如果利用記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則可以利用備份的文件對(duì)已損壞的文件進(jìn)行修復(fù)。當(dāng)然,也可以不是在發(fā)現(xiàn)移動(dòng)存儲(chǔ)設(shè)備被非法拔出時(shí)就對(duì)源文件進(jìn)行備份,例如,還可以對(duì)源文件進(jìn)行跟蹤,在發(fā)現(xiàn)源文件被刪除或者被移動(dòng)時(shí),再對(duì)源文件進(jìn)行備份?;蛘?,在發(fā)現(xiàn)源文件被移動(dòng)時(shí),還可以將之前保存的關(guān)于該文件的來源路徑修改為移動(dòng)后的路徑,這樣,同樣可以實(shí)現(xiàn)對(duì)已損壞的文件的修復(fù)。與本發(fā)明實(shí)施例提供的文件修復(fù)方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種文件修復(fù)裝置,參見圖2,該裝置可以包括
監(jiān)控單元201,用于檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作;
記錄單元202,用于當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息;
保存單元203,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存;
判斷單元204,用于當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞;
修復(fù)單元205,用于如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。其中,具體在利用保存的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)時(shí),可以有多種實(shí)現(xiàn)方式,例如,在其中一種實(shí)現(xiàn)方式下,修復(fù)單元205具體可以包括以下子單元
路徑提供子單元,用于將所述保存的記錄中的文件來源路徑提供給用戶,以便用戶從所述文件來源路徑重新獲取所述文件,用以替換所述已損壞的文件?;蛘?,在另一種實(shí)現(xiàn)方式下,修復(fù)單元205具體也可以包括以下子單元
文件獲取子單元,用于從所述保存的記錄中的文件來源路徑獲取所述文件;
替換子單元,用于用所述獲取到的文件替換所述已損壞的文件。為了避免來源路徑下的源文件被刪除或者被移動(dòng)到其他路徑下,該裝置還可以包括
文件備份單元,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,將存入到所述移動(dòng)存儲(chǔ)設(shè)備中的文件進(jìn)行備份;
補(bǔ)充修復(fù)單元,用于如果利用所述保存的記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則利用所述備份的文件對(duì)所述已損壞的文件進(jìn)行修復(fù)。當(dāng)然,具體當(dāng)可移動(dòng)終端設(shè)備再次被插入時(shí),判斷移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞的方法,也可以有多種,例如,在其中一種實(shí)現(xiàn)方式下,判斷單元204可以包括以下子單元
識(shí)別子單元,用于識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí);如果不具有,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞;
比對(duì)子單元,用于如果具有,則根據(jù)所述文件來源路徑讀取源文件的數(shù)據(jù),將所述移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與所述源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞。如果發(fā)現(xiàn)移動(dòng)存儲(chǔ)設(shè)備被正常拔出,則存入其中的文件一般不會(huì)已損壞,因此,也就沒有必要再對(duì)來源路徑等信息進(jìn)行存儲(chǔ)。此時(shí),該裝置還可以包括
銷毀單元,用于如果檢測(cè)到正常拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行銷毀??傊?,通過本發(fā)明實(shí)施例提供的文件修復(fù)裝置,可以在檢測(cè)到向移動(dòng)存儲(chǔ)設(shè)備存入文件的操作時(shí),對(duì)該存入的文件的來源路徑以及移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)進(jìn)行記錄,一旦檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備被非法拔出時(shí),就可以將該記錄進(jìn)行保存;這樣,當(dāng)檢測(cè)到該移動(dòng)存儲(chǔ)設(shè)備再次被插入時(shí),可以首先判斷其中的文件是否被破壞,如果是,則可以通過該文件的來源路徑對(duì)被破壞的文件進(jìn)行修復(fù)。也即,通過本發(fā)明,能夠在移動(dòng)存儲(chǔ)設(shè)備被非法拔出,并且其中的文件被破壞的情況下,對(duì)被破壞的文件進(jìn)行修復(fù)。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上對(duì)本發(fā)明所提供的文件修復(fù)方法及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種文件修復(fù)方法,其特征在于,包括 檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作; 當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息; 如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存; 當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞; 如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)包括 將所述保存的記錄中的文件來源路徑提供給用戶,以便用戶從所述文件來源路徑重新獲取所述文件,用以替換所述已損壞的文件。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)包括 從所述保存的記錄中的文件來源路徑獲取所述文件; 用所述獲取到的文件替換所述已損壞的文件。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,所述方法還包括 將存入到所述移動(dòng)存儲(chǔ)設(shè)備中的文件進(jìn)行備份; 如果利用所述保存的記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則利用所述備份的文件對(duì)所述已損壞的文件進(jìn)行修復(fù)。
5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞包括 識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí);如果不具有,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞; 如果具有,則根據(jù)所述文件來源路徑讀取源文件的數(shù)據(jù),將所述移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與所述源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞。
6.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,還包括 如果檢測(cè)到正常拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行銷毀。
7.一種文件修復(fù)裝置,其特征在于,包括 監(jiān)控單元,用于檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作; 記錄單元,用于當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息; 保存單元,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存; 判斷單元,用于當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞;修復(fù)單元,用于如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述修復(fù)單元包括 路徑提供子單元,用于將所述保存的記錄中的文件來源路徑提供給用戶,以便用戶從所述文件來源路徑重新獲取所述文件,用以替換所述已損壞的文件。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述修復(fù)單元包括 文件獲取子單元,用于從所述保存的記錄中的文件來源路徑獲取所述文件; 替換子單元,用于用所述獲取到的文件替換所述已損壞的文件。
10.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的裝置,其特征在于,還包括 文件備份單元,用于如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,將存入到所述移動(dòng)存儲(chǔ)設(shè)備中的文件進(jìn)行備份; 補(bǔ)充修復(fù)單元,用于如果利用所述保存的記錄中的文件來源路徑對(duì)已損壞的文件進(jìn)行修復(fù)不成功,則利用所述備份的文件對(duì)所述已損壞的文件進(jìn)行修復(fù)。
11.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的裝置,其特征在于,所述判斷單元包括 識(shí)別子單元,用于識(shí)別所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否具有結(jié)束標(biāo)識(shí);如果不具有,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞; 比對(duì)子單元,用于如果具有,則根據(jù)所述文件來源路徑讀取源文件的數(shù)據(jù),將所述移動(dòng)存儲(chǔ)設(shè)備中的文件的數(shù)據(jù)與所述源文件的數(shù)據(jù)進(jìn)行比對(duì),如果一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件未已損壞,如果不一致,則確定所述移動(dòng)存儲(chǔ)設(shè)備中的文件已損壞。
12.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的裝置,其特征在于,還包括 銷毀單元,用于如果檢測(cè)到正常拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行銷毀。
全文摘要
本發(fā)明公開了一種文件修復(fù)方法及裝置,其中,所述方法包括檢測(cè)到移動(dòng)存儲(chǔ)設(shè)備插入后,監(jiān)控向所述移動(dòng)存儲(chǔ)設(shè)備存入文件的操作;當(dāng)所述移動(dòng)存儲(chǔ)設(shè)備中存入文件時(shí),記錄該文件的來源路徑以及所述移動(dòng)存儲(chǔ)設(shè)備的標(biāo)識(shí)信息;如果檢測(cè)到非法拔出所述移動(dòng)存儲(chǔ)設(shè)備的消息,則將所述記錄進(jìn)行保存;當(dāng)檢測(cè)到所述移動(dòng)存儲(chǔ)設(shè)備再次插入時(shí),判斷所述移動(dòng)存儲(chǔ)設(shè)備中的文件是否已損壞;如果是,則利用所述保存的記錄中的文件來源路徑對(duì)所述已損壞的文件進(jìn)行修復(fù)。通過本發(fā)明,能夠在移動(dòng)存儲(chǔ)設(shè)備被非法拔出,并且其中的文件被破壞的情況下,對(duì)被破壞的文件進(jìn)行修復(fù)。
文檔編號(hào)G06F11/14GK103064752SQ201110321119
公開日2013年4月24日 申請(qǐng)日期2011年9月27日 優(yōu)先權(quán)日2011年9月27日
發(fā)明者陳擎月, 張輝 申請(qǐng)人:奇智軟件(北京)有限公司