專利名稱:從磁盤上恢復(fù)被刪除的jpg文件的方法及計(jì)算機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體是指從磁盤上恢復(fù)被刪除的JPG文件的方法及計(jì)算機(jī)。
背景技術(shù):
數(shù)據(jù)恢復(fù)領(lǐng)域,軟件恢復(fù)可以分為兩種方式1、基于文件系統(tǒng)結(jié)構(gòu)的恢復(fù);2、基于文件內(nèi)容的恢復(fù)。第一種方式是根據(jù)文件系統(tǒng)的特點(diǎn),比如NTFS(New Technology File System,是Windows NT操作環(huán)境和Windows NT高級(jí)服務(wù)器網(wǎng)絡(luò)操作系統(tǒng)環(huán)境的文件系統(tǒng)) 文件系統(tǒng)會(huì)將刪除的文件做標(biāo)記,但文件存放位置等關(guān)鍵信息仍然存在。第二種方式是利用某些文件已知的特征碼,通常是文件開始處的幾個(gè)字節(jié)的內(nèi)容。第一種恢復(fù)方式恢復(fù)質(zhì)量較好,而且通??梢缘玫轿募秉c(diǎn)是在刪除文件,并使用此分區(qū)一段時(shí)間后不容易找到;后一種往往能找到很久以前刪除的文件,缺點(diǎn)是沒(méi)有文件名,文件損壞的概率也比較尚?,F(xiàn)有技術(shù)中,恢復(fù)JPG(Joint Photographic Experts Group,聯(lián)合圖像專家組,) 的方式,例如fesy Recovery (—種文件恢復(fù)軟件)軟件,先尋找JPG文件的文件頭標(biāo)識(shí)“FF D8 FF E0”,直到找到下一個(gè)文件的文件頭或者達(dá)到最大值(2G),將此區(qū)間內(nèi)容識(shí)別為一個(gè) JPG文件。上述現(xiàn)有技術(shù)提供的恢復(fù)方法缺點(diǎn)是恢復(fù)出來(lái)的文件往往比較大,某些圖片查看軟件不能正確顯示這種文件尾有很多垃圾數(shù)據(jù)的圖片。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種從磁盤上恢復(fù)被刪除的JPG文件的方法及計(jì)算機(jī), 恢復(fù)后的文件內(nèi)容與真實(shí)文件內(nèi)容大小相同,且通用性強(qiáng)。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是本發(fā)明提供一種從磁盤上恢復(fù)被刪除的JPG文件的方法,其包括—種從磁盤上恢復(fù)被刪除的JPG文件的方法,其包括S110、尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;S120、向后尋找JPG中間文件壓縮包的標(biāo)記,在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該中間文件壓縮包的標(biāo)記是0xfff9,則執(zhí)行步驟S140 ;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù), 記錄該整數(shù)值為L(zhǎng) ;S130、從當(dāng)前位置+L的位置開始,重復(fù)執(zhí)行步驟S120的操作;S140、確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。優(yōu)選地,所述在磁盤中尋找具有文件頭特征碼的扇區(qū),具體包括在磁盤中搜索以〃 ff d8 ff e0〃,〃 ff d8 ff el",〃 ff d8 ff ed〃,〃 ff d8 ff ff fe" Jf^k的扇區(qū)。優(yōu)選地,所述JPG中間文件壓縮包的標(biāo)記是在(OxffcO Oxffcf)和(Oxffda Oxfffe)范圍內(nèi)的16位整數(shù)。步驟SllO中,當(dāng)尋找JPG文件的文件頭特征碼,在磁盤中尋找到以〃 ff d8 ffeO"開頭的扇區(qū)時(shí),還包括判斷所述磁盤是否以"ff d8 ff e0 00 10 41 56 49 31〃開頭的扇區(qū);當(dāng)判斷為是時(shí),則繼續(xù)執(zhí)行步驟SllO ;當(dāng)判斷為否時(shí),則執(zhí)行步驟S120。一種計(jì)算機(jī),其包括特征碼尋找單元,用于尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;標(biāo)記尋找單元,用于向后尋找JPG中間文件壓縮包的標(biāo)記;在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該中間文件壓縮包的標(biāo)記是0xfff9,則啟動(dòng)文件恢復(fù)單元;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù),記錄該整數(shù)值為L(zhǎng),啟動(dòng)標(biāo)記重復(fù)單元;標(biāo)記重復(fù)單元,用于從當(dāng)前位置+L的位置開始,觸發(fā)標(biāo)記尋找單元重復(fù)執(zhí)行尋找過(guò)程;文件恢復(fù)單元,用于確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。優(yōu)選地,所述特征碼尋找單元,用于在磁盤中搜索以〃 ff d8 ff e0〃、丨‘ff d8 ffel"、“ ff d8 ff ed"、或者"ff d8 ff ff fe〃 開頭的扇區(qū)。優(yōu)選地,所述JPG中間文件壓縮包的標(biāo)記是在(OxffcO Oxffcf)和(Oxffda Oxfffe)范圍內(nèi)的16位整數(shù)。優(yōu)選地,所述計(jì)算機(jī)還包括特征碼判斷單元,用于當(dāng)所述特征碼尋找單元在磁盤中搜索到以〃 ff d8 ff e0〃開頭的扇區(qū)時(shí),判斷所述磁盤是否以〃 ff d8 ff e0 0010 41 56 49 31"開頭的扇區(qū);當(dāng)判斷為是時(shí),則觸發(fā)所述特征碼尋找單元執(zhí)行尋找過(guò)程;當(dāng)判斷為否時(shí),則觸發(fā)所述標(biāo)記尋找單元執(zhí)行尋找過(guò)程。實(shí)施本發(fā)明的技術(shù)方案,具有以下有益效果本發(fā)明提供的方法根據(jù)文件內(nèi)容來(lái)恢復(fù)刪除的文件,恢復(fù)后的文件內(nèi)容與真實(shí)文件內(nèi)容大小相同,且通用性強(qiáng),在各種文件系統(tǒng)中都能使用和查看該JPG文件。
圖1為本發(fā)明實(shí)施例提供的方法流程圖;圖2為本發(fā)明實(shí)施例提供的計(jì)算機(jī)的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的計(jì)算機(jī)的另一結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例提供一種從磁盤上恢復(fù)被刪除的JPG文件的方法,如圖1所示,該方法包括步驟S110、尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū), 并記錄該扇區(qū)的偏移為開始位置;具體該步驟SllO中在磁盤中搜索以"ff d8 ff e0〃、‘‘ ff d8 ff el"、‘‘ ff d8 ff ed〃、或〃 ff d8 ff ff fe〃 開頭的扇區(qū)?!甪f d8 ff eOOO 10 41 56 49 31"除外,這種特征碼是avi (Audio Video Interleaved,音頻視頻交錯(cuò)格式)文件中的關(guān)鍵幀,而不是獨(dú)立的JPG文件。S120、向后尋找JPG中間文件壓縮包的標(biāo)記,在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該JPG中間文件壓縮包的標(biāo)記是0xfff9,則執(zhí)行步驟S140 ;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù)(大端對(duì)齊),記錄該整數(shù)值為L(zhǎng) ;在本實(shí)施例中,更為具體的,所述JPG中間文件壓縮包的標(biāo)記是在(OxffcO Oxffcf)和(Oxffda Oxfffe)范圍內(nèi)的16位整數(shù)(大端對(duì)齊)。S130、從當(dāng)前位置+L的位置開始,重復(fù)執(zhí)行步驟S120的操作;這樣確定的當(dāng)前位置的位置有多個(gè),即重復(fù)一次步驟S120,就又有一個(gè)新的當(dāng)前位置。S140、確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。在其他的實(shí)施例中,進(jìn)一步的,在上述步驟Sl 10中,當(dāng)尋找JPG文件的文件頭特征碼,在磁盤中尋找到以"ff d8 ff e0"開頭的扇區(qū)時(shí),還包括判斷所述磁盤是否以" d8 ff e0 00 10 41 56 49 31〃開頭的扇區(qū);當(dāng)判斷為是時(shí),則繼續(xù)執(zhí)行步驟SllO ;當(dāng)判斷為否時(shí),則執(zhí)行步驟S120。在本實(shí)施例中,因?yàn)楫?dāng)前位置的位置有多個(gè),所以有多個(gè)所述開始位置和當(dāng)前位置之間的數(shù)據(jù),其中有一個(gè)所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為所述JPG文件,可以根據(jù)JPG文件內(nèi)容的大小來(lái)驗(yàn)證和確定哪個(gè)所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為所述JPG 文件。本實(shí)施例提供的方法根據(jù)JPG文件內(nèi)容來(lái)恢復(fù)刪除的文件,恢復(fù)后的JPG文件內(nèi)容與真實(shí)JPG文件內(nèi)容大小相同,且通用性強(qiáng),在各種文件系統(tǒng)中都能使用和查看該JPG文件。本發(fā)明還提供一種計(jì)算機(jī),用于實(shí)現(xiàn)上述實(shí)施例提供的方法,如圖2所示,該計(jì)算機(jī)包括特征碼尋找單元210,用于尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;更為具體的,所述特征碼尋找單元,用于在磁盤中搜索以〃 ff d8 ff e0〃、‘‘ ff d8 ff el"、‘‘ ff d8 ff ed〃、或〃 ff d8 ff ff fe〃開頭的扇區(qū)。標(biāo)記尋找單元220,用于向后尋找JPG中間文件壓縮包的標(biāo)記;在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該標(biāo)記是0xfff9,則啟動(dòng)文件恢復(fù)單元MO ;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù)(大端對(duì)齊),記錄該整數(shù)值為L(zhǎng) ;其中,更為具體的,所述JPG中間文件壓縮包的標(biāo)記是在(OxffcO Oxffcf)和(Oxffda Oxfffe)范圍內(nèi)的16位整數(shù)標(biāo)記重復(fù)單元230,用于從當(dāng)前位置+L的位置開始,啟動(dòng)標(biāo)記尋找單元220 ;文件恢復(fù)單元M0,用于確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整 JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。在其他的實(shí)施例中,進(jìn)一步的,如圖3所示,所述計(jì)算機(jī)還包括特征碼判斷單元 250,用于當(dāng)所述特征碼尋找單元在磁盤中搜索到以"ff d8 ff eO"開頭的扇區(qū)時(shí),判斷所述磁盤是否以〃 ff d8 ff eO 00 10 41 56 49 31〃開頭的扇區(qū);當(dāng)判斷為是時(shí),則觸發(fā)所述特征碼尋找單元210執(zhí)行尋找過(guò)程;當(dāng)判斷為否時(shí),則觸發(fā)所述標(biāo)記尋找單元220執(zhí)行尋找過(guò)程。本實(shí)施例提供的方法根據(jù)JPG文件內(nèi)容來(lái)恢復(fù)刪除的文件,恢復(fù)后的JPG文件內(nèi)容與真實(shí)JPG文件內(nèi)容大小相同,且通用性強(qiáng),在各種文件系統(tǒng)中都能使用和查看該JPG文件。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種從磁盤上恢復(fù)被刪除的JPG文件的方法,其特征在于,包括S110、尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;S120、向后尋找JPG中間文件壓縮包的標(biāo)記,在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該中間文件壓縮包的標(biāo)記是0xfff9,則執(zhí)行步驟S140 ;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù),記錄該整數(shù)值為L(zhǎng) ;S130、從當(dāng)前位置+L的位置開始,重復(fù)執(zhí)行步驟S120的操作;S140、確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。
2.如權(quán)利要求1所述方法,其特征在于,所述在磁盤中尋找具有文件頭特征碼的扇區(qū), 具體包括在磁盤中搜索以〃 ff d8 ff e0〃、“ ff d8 ff el"、“ ff d8 ff ed"、 或〃 ff d8 ff ff fe〃開頭的扇區(qū)。
3.如權(quán)利要求1所述方法,其特征在于,所述JPG中間文件壓縮包的標(biāo)記是在 (OxffcO Oxffcf)禾Π (Oxffda Oxfffe)范圍內(nèi)的 16 位整數(shù)。
4.如權(quán)利要求2所述方法,其特征在于,步驟SllO中,當(dāng)尋找JPG文件的文件頭特征碼,在磁盤中尋找到以〃 ff d8 ff e0〃開頭的扇區(qū)時(shí),還包括判斷所述磁盤是否以〃 ff d8 ff e0 00 10 41 56 49 31〃開頭的扇區(qū);當(dāng)判斷為是時(shí),則繼續(xù)執(zhí)行步驟SllO ;當(dāng)判斷為否時(shí),則執(zhí)行步驟S120。
5.一種計(jì)算機(jī),其特征在于,包括特征碼尋找單元,用于尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;標(biāo)記尋找單元,用于向后尋找JPG中間文件壓縮包的標(biāo)記;在所述扇區(qū)中找到所述JPG 中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,如果該中間文件壓縮包的標(biāo)記是0xfff9,則啟動(dòng)文件恢復(fù)單元;否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù),記錄該整數(shù)值為L(zhǎng),啟動(dòng)標(biāo)記重復(fù)單元;標(biāo)記重復(fù)單元,用于從當(dāng)前位置+L的位置開始,觸發(fā)標(biāo)記尋找單元重復(fù)執(zhí)行尋找過(guò)程;文件恢復(fù)單元,用于確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。
6.如權(quán)利要求4所述計(jì)算機(jī),其特征在于,所述特征碼尋找單元,用于在磁盤中搜索以"ff d8 ff e0"、“ ff d8 ff el"、“ ff d8 ff ed"、或"ff d8 ff ff fe"開頭的扇區(qū)。
7.如權(quán)利要求4所述計(jì)算機(jī),其特征在于,所述JPG中間文件壓縮包的標(biāo)記是在 (OxffcO Oxffcf)和(Oxffda Oxfffe)范圍內(nèi)的 16 位整數(shù)。
8.如權(quán)利要求6所述計(jì)算機(jī),其特征在于,所述計(jì)算機(jī)還包括特征碼判斷單元,用于當(dāng)所述特征碼尋找單元在磁盤中搜索到以"ff d8 ff e0"開頭的扇區(qū)時(shí),判斷所述磁盤是否以〃 ff d8 ff e0 00 10 41 56 49 31〃開頭的扇區(qū);當(dāng)判斷為是時(shí),則觸發(fā)所述特征碼尋找單元執(zhí)行尋找過(guò)程;當(dāng)判斷為否時(shí),則觸發(fā)所述標(biāo)記尋找單元執(zhí)行尋找過(guò)程。
全文摘要
本發(fā)明涉及一種從磁盤上恢復(fù)被刪除的JPG文件的方法及計(jì)算機(jī),該方法包括尋找JPG文件的文件頭特征碼,在磁盤中尋找具有文件頭特征碼的扇區(qū),并記錄該扇區(qū)的偏移為開始位置;在所述扇區(qū)中找到所述JPG中間文件壓縮包的標(biāo)記,記該JPG中間文件壓縮包的標(biāo)記的位置為當(dāng)前位置,否則,從該中間文件壓縮包的標(biāo)記后讀取16位整數(shù),記錄該整數(shù)值為L(zhǎng);從當(dāng)前位置+L的位置開始,重復(fù)執(zhí)行上述的操作;確定所述開始位置和當(dāng)前位置之間的數(shù)據(jù)為一個(gè)完整JPG文件的內(nèi)容,讀取并保存該JPG文件的內(nèi)容以恢復(fù)該JPG文件。本發(fā)明根據(jù)文件內(nèi)容來(lái)恢復(fù)刪除的文件,恢復(fù)后的文件內(nèi)容與真實(shí)文件內(nèi)容大小相同,且通用性強(qiáng),在各種文件系統(tǒng)中都能使用和查看該JPG文件。
文檔編號(hào)G06F11/14GK102298546SQ20111026529
公開日2011年12月28日 申請(qǐng)日期2011年9月7日 優(yōu)先權(quán)日2011年9月7日
發(fā)明者馮星 申請(qǐng)人:深圳市萬(wàn)興軟件有限公司