亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種FAT鏡像文件處理的方法及裝置與流程

文檔序號:12063679閱讀:316來源:國知局
一種FAT鏡像文件處理的方法及裝置與流程

本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種FAT鏡像文件處理的方法及裝置。



背景技術(shù):

文件配置表(Fill Allocation Table,F(xiàn)AT)文件是一種常見的文件系統(tǒng)類型,現(xiàn)有的幾種FAT類型的文件系統(tǒng)有FAT16、FAT32和EXFAT文件系統(tǒng),常用于U盤等熱插拔可移動存儲設(shè)備上,Windows系統(tǒng)、Linux系統(tǒng)都可支持這些FAT文件系統(tǒng)。

目前的FAT鏡像文件存儲FAT文件系統(tǒng)完整的數(shù)據(jù)結(jié)構(gòu),這樣會導(dǎo)致一系列的問題。例如,在對FAT文件系統(tǒng)的鏡像文件進(jìn)行傳輸?shù)倪^程中,常常受傳輸介質(zhì)的限制,例如網(wǎng)絡(luò)帶寬和USB速度等等的限制,傳輸效率較低。又例如,對于FAT文件系統(tǒng)的鏡像文件的存儲,也存在占用過多存儲資源的問題。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例的目的是提供一種FAT鏡像文件處理的方法及裝置,用于解決FAT鏡像文件存儲FAT文件系統(tǒng)完整的數(shù)據(jù)結(jié)構(gòu)導(dǎo)致的一系列問題。

本發(fā)明實施例的目的是通過以下技術(shù)方案實現(xiàn)的:

一種FAT鏡像文件處理的方法,包括:

創(chuàng)建文件配置表FAT鏡像文件的壓縮文件;

將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到所述壓縮文件中,所述壓縮文件中不包括所述FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

可選的,將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已 使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到所述壓縮文件中,包括:

生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù);

生成所述壓縮文件的文件頭,所述壓縮文件的文件頭中包括所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;

將所述文件頭、所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊添加到所述壓縮文件中。

可選的,所述第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

可選的,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),所述第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù);

如果所述第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),所述第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)。

可選的,將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到所述壓縮文件中,包括:

生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

生成所述壓縮文件的文件頭,所述壓縮文件的文件頭中包括所述第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在所述壓縮文件中的位置信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;

將所述文件頭、所述第一數(shù)據(jù)塊和所述FAT鏡像文件的各個已使用的數(shù)據(jù) 結(jié)構(gòu)添加到所述壓縮文件中。

可選的,將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)添加到所述壓縮文件中,包括:

生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù);

生成所述壓縮文件的文件頭,所述壓縮文件的文件頭中包括所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在所述壓縮文件中的位置信息,所述第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;

將所述文件頭和所述第二數(shù)據(jù)塊添加到所述壓縮文件中。

可選的,將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到所述壓縮文件中之后,還包括:

發(fā)送所述壓縮文件。

一種FAT鏡像文件處理的裝置,包括:

創(chuàng)建壓縮文件模塊,用于:創(chuàng)建FAT鏡像文件的壓縮文件;

壓縮文件添加模塊,用于:將所述FAT鏡像文件的結(jié)構(gòu)信息和所述FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到所述壓縮文件中,所述壓縮文件中不包括所述FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

本發(fā)明實施例的有益效果如下:

本發(fā)明實施例中,創(chuàng)建FAT鏡像文件的壓縮文件;將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)添加到壓縮文件中,該壓縮文件中不包括該FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)。由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的。這樣,不僅減少了該FAT鏡像文件的壓縮文件所占的存儲資源,并且這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

一種FAT鏡像文件處理的方法,包括:

從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息,所述 壓縮文件中不包括未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)所述FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)。

可選的,從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息,包括:

從所述壓縮文件的文件頭中讀取第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);

根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息從所述壓縮文件中查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息從所述壓縮文件中查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),包括:

從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)所述FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,所述第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

可選的,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),所述第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù);

如果所述第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),所述第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù);根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,包括:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息,包括:

從所述壓縮文件的文件頭中讀取第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和及其在所述壓縮文件中的位置信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);

根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),包括:

根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)在所述壓縮文件中的位置信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢 復(fù)所述FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息,包括:

從所述壓縮文件的文件頭中讀取第二數(shù)據(jù)塊的結(jié)構(gòu)信息,未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在所述壓縮文件中的位置信息,和所述FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);

根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),包括:

從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)所述FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu),包括:

根據(jù)讀取的未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在所述壓縮文件中的位置信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息之前,還包括:

接收所述FAT鏡像文件的壓縮文件。

一種FAT鏡像文件處理的裝置,包括:

結(jié)構(gòu)信息讀取模塊,用于:從FAT鏡像文件的壓縮文件中讀取所述FAT鏡像文件的結(jié)構(gòu)信息,所述壓縮文件中不包括未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

數(shù)據(jù)讀取模塊,用于:根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息從所述壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

第一恢復(fù)模塊,用于:根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)所述FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu);

第二恢復(fù)模塊,用于:根據(jù)讀取的所述FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)所述FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)。

本發(fā)明實施例的有益效果如下:

本發(fā)明實施例中,由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的大小,節(jié)省了壓縮文件的所占的存儲資源。并且,恢復(fù)的過程中,也不需要從壓縮文件中再讀取數(shù)據(jù)字段,直接根據(jù)默認(rèn)數(shù)據(jù)進(jìn)行恢復(fù),處理速度較快。另外,這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

附圖說明

圖1為本發(fā)明實施例提供的第一種FAT鏡像文件處理的方法流程圖;

圖2為本發(fā)明實施例提供的第二種FAT鏡像文件處理的方法流程圖;

圖3為本發(fā)明實施例提供的第三種FAT鏡像文件處理的方法流程圖;

圖4為本發(fā)明實施例提供的第四種FAT鏡像文件處理的方法流程圖;

圖5為本發(fā)明實施例提供的第五種FAT鏡像文件處理的方法流程圖;

圖6為本發(fā)明實施例提供的第六種FAT鏡像文件處理的方法流程圖;

圖7為本發(fā)明實施例提供的第七種FAT鏡像文件處理的方法流程圖;

圖8為本發(fā)明實施例提供的第八種FAT鏡像文件處理的方法流程圖;

圖9為現(xiàn)有的FAT鏡像文件中的簇鏈表;

圖10為現(xiàn)有的FAT鏡像文件中的簇使用情況;

圖11為本發(fā)明實施例提供的FAT鏡像文件壓縮文件的邏輯示意圖;

圖12為本發(fā)明實施例提供的第一種FAT鏡像文件處理的裝置示意圖;

圖13為本發(fā)明實施例提供的第二種FAT鏡像文件處理的裝置示意圖;

圖14為本發(fā)明實施例提供的第三種FAT鏡像文件處理的裝置示意圖;

圖15為本發(fā)明實施例提供的第四種FAT鏡像文件處理的裝置示意圖。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明提供的一種FAT鏡像文件處理的方法及裝置進(jìn)行更詳細(xì)地說明。

如圖1所示,本發(fā)明實施例提供一種FAT鏡像文件處理的方法,其具體實現(xiàn)方式如下:

步驟110:創(chuàng)建FAT鏡像文件的壓縮文件。

該步驟中,創(chuàng)建的是一個空的壓縮文件。

步驟120:將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到壓縮文件中,該壓縮文件中不包括該FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

FAT鏡像文件的數(shù)據(jù)結(jié)構(gòu)是FAT鏡像文件的組成部分,也即對應(yīng)的FAT文件系統(tǒng)的組成部分。以FAT16/32文件系統(tǒng)為例,其可分成操作系統(tǒng)引導(dǎo)記錄區(qū)(Dos Boot Record,DBR)、保留區(qū)、FAT表區(qū)、數(shù)據(jù)區(qū),每個分區(qū)的容量大小以占用的扇區(qū)數(shù)表示,數(shù)據(jù)區(qū)中以簇為基本單位,每個簇占用一個或多個扇區(qū);數(shù)據(jù)結(jié)構(gòu)可以是一個分區(qū),一個扇區(qū),一個簇。

其中,F(xiàn)AT鏡像文件的結(jié)構(gòu)信息包括FAT鏡像文件的整體結(jié)構(gòu)信息和每個 個數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息。其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息包括FAT鏡像文件中的數(shù)據(jù)結(jié)構(gòu)的總數(shù)量、FAT鏡像文件的總字節(jié)數(shù),等等。其中,每個數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

本發(fā)明實施例中,創(chuàng)建FAT鏡像文件的壓縮文件;將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到壓縮文件中,該壓縮文件中不包括該FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的大小。這樣,不僅減少了該FAT鏡像文件的壓縮文件所占的存儲資源,并且這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

上述步驟120的實現(xiàn)方式有多種,如圖2所示,第一種實現(xiàn)方式可以是:

步驟210:生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

其中,第一數(shù)據(jù)塊是按照預(yù)定格式生成的,第一數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息外,還包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,如第一數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

步驟220:生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù)。

其中,第二數(shù)據(jù)塊的格式與上述第一數(shù)據(jù)塊的格式相同,第二數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù)外,還包括第二數(shù)據(jù)塊的結(jié)構(gòu)信息,如第二數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

步驟230:生成壓縮文件的文件頭,壓縮文件的文件頭中包括第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟240:將文件頭、第一數(shù)據(jù)塊和第二數(shù)據(jù)塊添加到壓縮文件中。

本發(fā)明實施例中,未使用的數(shù)據(jù)結(jié)構(gòu)和已使用的數(shù)據(jù)結(jié)構(gòu)均生成數(shù)據(jù)塊,使得數(shù)據(jù)處理更加方便。

應(yīng)當(dāng)指出的是,上述步驟210和220的時序不作限定,可以先生成第一數(shù)據(jù)塊,再生成第二數(shù)據(jù)塊,或者并行生成第一數(shù)據(jù)塊和第二數(shù)據(jù)塊。

可選的,可以設(shè)置數(shù)據(jù)塊的類型。一種實現(xiàn)方式中,將數(shù)據(jù)塊分為兩類,第一數(shù)據(jù)塊為一類,這類數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為未使用的數(shù)據(jù)結(jié)構(gòu),稱為未使用(UNUSED)類型,第二數(shù)據(jù)塊為一類,這類數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為已使用的數(shù)據(jù)結(jié)構(gòu),稱為原數(shù)據(jù)(RAW)類型。相應(yīng)的,第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

下面舉例對這種分類方式中的第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)進(jìn)行說明:例如,在數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)為a,b,c,d,e,那么生成的第二數(shù)據(jù)塊中包括數(shù)據(jù)a,b,c,d,e,這樣,第二數(shù)據(jù)塊中就包括了對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的全部數(shù)據(jù);再例如,在數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)為f,f,f,f,f,那么生成的第二數(shù)據(jù)塊中包括數(shù)據(jù)f,f,f,f,f,這樣,第二數(shù)據(jù)塊中就包括了對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的全部數(shù)據(jù)。

在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)在后一舉例的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)是對數(shù)據(jù)f的重復(fù),在第二數(shù)據(jù)塊中相應(yīng)的也包括重復(fù)的數(shù)據(jù)f,重復(fù)存儲相同的數(shù)據(jù)會造成存儲資源的浪費,為了進(jìn)一步節(jié)省存儲資源,提供了另一種數(shù)據(jù)塊的分類分式。

另一種實現(xiàn)方式中,將數(shù)據(jù)塊分為三類,第一數(shù)據(jù)塊為一類,這類數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為未使用的數(shù)據(jù)結(jié)構(gòu),稱為未使用(UNUSED)類型,第二數(shù)據(jù)塊分為兩類,其中一類數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為已使用的并且沒有重復(fù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),稱為原數(shù)據(jù)(RAW)類型,另一類對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為已使用的并 且有特征數(shù)據(jù)重復(fù)的數(shù)據(jù)結(jié)構(gòu),稱為填充(FILL)類型。相應(yīng)的,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù);如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)。

下面舉例對這種分類方式中的第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)進(jìn)行說明:例如,在數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)為a,b,c,d,e,那么生成的第二數(shù)據(jù)塊中包括數(shù)據(jù)a,b,c,d,e,這樣,第二數(shù)據(jù)塊中就包括了對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的全部數(shù)據(jù);再例如,在數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)為f,f,f,f,f,那么生成的第二數(shù)據(jù)塊中包括數(shù)據(jù)f,這樣,第二數(shù)據(jù)塊中就只包括了對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中的特征數(shù)據(jù)f,而不是將全部數(shù)據(jù)f,f,f,f,f都包括其中,節(jié)省了存儲資源。

上述實施例中,由于對于包括重復(fù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),僅在第二數(shù)據(jù)塊中包括該數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù),即對重復(fù)的數(shù)據(jù)只存儲一次,從而減少了第二數(shù)據(jù)塊中的數(shù)據(jù)量,進(jìn)一步減少了壓縮文件的大小,減少了壓縮文件所占存儲資源。對于這樣的壓縮文件的傳輸,其傳輸效率進(jìn)一步提高了。

下面舉例對上述步驟120的第一種實現(xiàn)方式進(jìn)行更加詳細(xì)地說明。

本實施例中,第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的格式如下:

數(shù)據(jù)塊(Chunk)={Chunk類型,Chunk長度,扇區(qū)數(shù),數(shù)據(jù)};

其中,Chunk類型和Chunk長度是數(shù)據(jù)塊的結(jié)構(gòu)信息,扇區(qū)數(shù)是指數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,數(shù)據(jù)是指數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

其中,Chunk類型有兩種,RAW類型,UNUSED類型。RAW類型中,扇區(qū)數(shù)非0且數(shù)據(jù)存在。UNUSED類型中,扇區(qū)數(shù)非0且數(shù)據(jù)不存在。

文件頭的格式如下:

文件頭={文件標(biāo)識ID,文件頭大小,Chunk頭結(jié)構(gòu)大小(即不包含數(shù)據(jù)的Chunk的大小),每個扇區(qū)的字節(jié)數(shù),總扇區(qū)數(shù),Chunk總數(shù)量,數(shù)據(jù)校驗和}

其中,每個扇區(qū)的字節(jié)數(shù),總扇區(qū)數(shù),Chunk總數(shù)量體現(xiàn)了FAT鏡像文件 的整體結(jié)構(gòu)信息。Chunk頭結(jié)構(gòu)大小體現(xiàn)了數(shù)據(jù)塊的結(jié)構(gòu)信息。

對FAT鏡像文件進(jìn)行處理時,上述步驟210的具體實現(xiàn)方式可以是:對未使用的數(shù)據(jù)結(jié)構(gòu)按照上述Chunk的格式生成UNUSED類型的數(shù)據(jù)塊。

上述步驟220的具體實現(xiàn)方式可以是:對已使用的數(shù)據(jù)結(jié)構(gòu)按照上述Chunk的格式生成RAW類型的數(shù)據(jù)塊。

上述步驟230的具體實現(xiàn)方式可以是:將文件標(biāo)識ID,文件頭結(jié)構(gòu)體大小,生成的RAW類型和UNUSED類型的Chunk頭結(jié)構(gòu)大小,每個扇區(qū)的字節(jié)數(shù),總扇區(qū)數(shù),Chunk總數(shù)量,數(shù)據(jù)校驗和添加到文件頭中。

上述步驟240的具體實現(xiàn)方式是:將文件頭、所有的Chunk添加到壓縮文件中。

可選的,如圖3所示,上述步驟120的第二種實現(xiàn)方式可以是:

步驟310:生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

其中,第一數(shù)據(jù)塊是按照預(yù)定格式生成的,第一數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息外,還包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,如第一數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

步驟320:生成壓縮文件的文件頭,壓縮文件的文件頭中包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第一數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟330:將文件頭、第一數(shù)據(jù)塊和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)添加到壓縮文件中。

本實施例中,僅將未使用的數(shù)據(jù)結(jié)構(gòu)生成數(shù)據(jù)塊,減少了需要生成數(shù)據(jù)塊 的數(shù)據(jù)結(jié)構(gòu)的數(shù)量,提高了處理效率。

上述實施例的具體實現(xiàn)方式可以參照步驟120的第一種實現(xiàn)方式。

可選的,如圖4所示,步驟120的第三種實現(xiàn)方式可以是:

步驟410:生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù);

其中,第二數(shù)據(jù)塊是按照預(yù)定格式生成的,第二數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù)外,還包括第二數(shù)據(jù)塊的結(jié)構(gòu)信息,如第二數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

步驟420:生成壓縮文件的文件頭,壓縮文件的文件頭中包括FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息、第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第二數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟430:將文件頭和第二數(shù)據(jù)塊添加到壓縮文件中。

本實施例中,僅生成已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)塊,并且僅在文件頭中加入未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,由于生成的數(shù)據(jù)塊也是要占一定的空間的,所以減少了生成數(shù)據(jù)塊的數(shù)量,并且進(jìn)一步減少了壓縮文件的大小。

上述實施例的具體實現(xiàn)方式可以參照步驟120的第一種實現(xiàn)方式。

在上述任意實施例的基礎(chǔ)上,按照步驟120將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)添加到壓縮文件中之后,得到的壓縮文件,還可以發(fā)送該壓縮文件。由其它設(shè)備或終端將其接收,實現(xiàn)了FAT鏡像文件的傳輸。

基于同樣的發(fā)明構(gòu)思,在需要將壓縮文件恢復(fù)成FAT鏡像文件時,如圖5所示,本發(fā)明實施例中還提供一種FAT鏡像文件處理的方法,具體實現(xiàn)方式如 下:

步驟510:從FAT鏡像文件的壓縮文件中讀取FAT鏡像文件的結(jié)構(gòu)信息,該壓縮文件中不包括未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

步驟520:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息從壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

其中,F(xiàn)AT鏡像文件的結(jié)構(gòu)信息包括FAT鏡像文件的整體結(jié)構(gòu)信息和每個個數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息。其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息包括FAT鏡像文件中的數(shù)據(jù)結(jié)構(gòu)的總數(shù)量、FAT鏡像文件的總字節(jié)數(shù),等等。其中,每個數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

步驟530:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu)。

步驟540:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息和未使用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)。

本發(fā)明實施例中,由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的大小,節(jié)省了壓縮文件的所占的存儲資源。并且,恢復(fù)的過程中,也不需要從壓縮文件中再讀取數(shù)據(jù)字段,直接根據(jù)默認(rèn)數(shù)據(jù)進(jìn)行恢復(fù),處理速度較快。另外,這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

可選的,上述步驟510~540的實現(xiàn)方式有多種,如圖6所示,第一種實現(xiàn)方式可以是:

步驟610:從壓縮文件的文件頭中讀取第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息從壓縮文件中查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息從壓縮文件中查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中 讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息。

其中,第一數(shù)據(jù)塊是按照預(yù)定格式生成的,第一數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息外,還包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,如第一數(shù)據(jù)塊的長度、類型,等等。

其中,第二數(shù)據(jù)塊的格式與上述第一數(shù)據(jù)塊的格式相同,第二數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù)外,還包括第二數(shù)據(jù)塊的結(jié)構(gòu)信息,如第二數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟620:從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

步驟630:根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

步驟640:根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

本實施例中,未使用的數(shù)據(jù)結(jié)構(gòu)和已使用的數(shù)據(jù)結(jié)構(gòu)均有對應(yīng)的數(shù)據(jù)塊,使得數(shù)據(jù)處理更加方便。

應(yīng)當(dāng)指出的是,上述步驟620和640的時序不作限定,可以先處理第一數(shù)據(jù)塊,再處理第二數(shù)據(jù)塊,或者并行處理第一數(shù)據(jù)塊和第二數(shù)據(jù)塊。

參照上述對FAT鏡像文件處理得到壓縮文件的實施例中,可選的,上述實施例中,第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

可選的,上述實施例中,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),第 二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù),相應(yīng)的,步驟630的具體實現(xiàn)方式可以是:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

本實施例中,由于對于包括重復(fù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),僅在第二數(shù)據(jù)塊中包括該數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù),即對重復(fù)的數(shù)據(jù)只存儲一次,相應(yīng)的,讀取的數(shù)據(jù)就減少了,從而提高了處理效率。

可選的,上述各個實施例中提到的默認(rèn)數(shù)據(jù)可以是全0,或者全為F,等等。

例如,對上述步驟120的第一種實現(xiàn)方式得到的一個壓縮文件進(jìn)行恢復(fù),上述步驟610~640的具體實現(xiàn)方式可以是:

讀取稀疏(Sparse)文件(即上述壓縮文件)的文件頭得到每個扇區(qū)的字節(jié)數(shù)、總扇區(qū)數(shù)和Chunk總數(shù)量等。按照順序讀取Chunk頭結(jié)構(gòu),如果是RAW類型,直接讀取數(shù)據(jù)塊Chunk中的數(shù)據(jù)寫入FAT鏡像文件;如果是FILL類型,則讀取特征數(shù)據(jù),寫入相應(yīng)扇區(qū)數(shù)的特征數(shù)據(jù)到FAT鏡像文件,如果是UNUSED類型,則直接在FAT鏡像文件相應(yīng)的扇區(qū)寫入全0數(shù)據(jù)。

可選的,對上述步驟120的第二種實現(xiàn)方式得到的一個壓縮文件進(jìn)行恢復(fù)時,如圖7所示,上述步驟510~540的第二種實現(xiàn)方式可以是:

步驟710:從壓縮文件的文件頭中讀取第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息。

其中,第一數(shù)據(jù)塊是按照預(yù)定格式生成的,第一數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息外,還包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,如第一數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第一數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟720:根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)在壓縮文件中的位置信息從壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

步驟730:根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

步驟740:根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

本發(fā)明實施例中,僅需要對未使用的數(shù)據(jù)結(jié)構(gòu)的第一數(shù)據(jù)塊進(jìn)行處理,減少了需要處理的數(shù)據(jù)結(jié)構(gòu)的數(shù)量,提高了處理效率。

可選的,對上述步驟120的第三種實現(xiàn)方式得到的一個壓縮文件進(jìn)行恢復(fù)時,如圖8所示,上述步驟510~540的第三種實現(xiàn)方式可以是:

步驟810:從壓縮文件的文件頭中讀取第二數(shù)據(jù)塊的結(jié)構(gòu)信息,未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息。

其中,第二數(shù)據(jù)塊是按照預(yù)定格式生成的,第二數(shù)據(jù)塊中除了包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù)外,還包括第二數(shù)據(jù)塊的結(jié)構(gòu)信息,如第二數(shù)據(jù)塊的長度、類型,等等。

其中,數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,包括數(shù)據(jù)結(jié)構(gòu)的字節(jié)數(shù),等等。

其中,F(xiàn)AT鏡像文件的整體結(jié)構(gòu)信息,包括第二數(shù)據(jù)塊的總數(shù)量,F(xiàn)AT鏡像文件的總字節(jié)數(shù),等等。

步驟820:從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

步驟830:根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將 從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

步驟840:根據(jù)讀取的未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

本實施例中,壓縮文件中僅存在已使用的數(shù)據(jù)結(jié)構(gòu)的第二數(shù)據(jù)塊,并且僅在文件頭中存在未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,減少了數(shù)據(jù)塊的數(shù)量,進(jìn)一步減少了壓縮文件的大小,并提高了處理效率。

在上述任意實施例的基礎(chǔ)上,執(zhí)行步驟510之前,還包括:接收FAT鏡像文件的壓縮文件。

其中,該壓縮文件可以是從其它設(shè)備或終端接收的。

下面以FAT鏡像文件為例,對本發(fā)明實施例提供的一種FAT鏡像文件處理的方法進(jìn)行更加詳細(xì)地說明。

本實施例中,以FAT16/32鏡像文件為例,F(xiàn)AT16/32磁盤鏡像中,F(xiàn)AT文件系統(tǒng)可分為DBR、保留區(qū)、FAT表區(qū)、數(shù)據(jù)區(qū)。

其中,DBR指定:每個扇區(qū)的字節(jié)數(shù),保留扇區(qū)數(shù),F(xiàn)AT表的個數(shù)(為1或2,F(xiàn)AT2是FAT1的備份),每個FAT表的扇區(qū)數(shù),每個簇的扇區(qū)數(shù),每個簇的字節(jié)數(shù)(每個扇區(qū)的字節(jié)數(shù)*每個簇的扇區(qū)數(shù))。

其中,F(xiàn)AT表是一個索引表,它指明了數(shù)據(jù)區(qū)中的所有簇的使用狀態(tài)(已使用,未使用),同時也是一個鏈表,用來指明大塊數(shù)據(jù)的拼接順序,例如,一個大文件需占用多個簇,可以通過它在FAT表中的鏈表按順序找到每個簇的數(shù)據(jù)。FAT16的簇號以16位(bit)為基本單元,結(jié)構(gòu)如圖9所示。在簇鏈表中,簇0/1為保留區(qū),簇n的內(nèi)容為指向下一個簇的編號,如果為FFFF,表示簇鏈到此結(jié)束,如簇2的內(nèi)容為0300,表示簇2的下一個簇為簇3,簇3的內(nèi)容為FFFF,表示沒有下一個簇。

數(shù)據(jù)區(qū)的每個簇有一個編號(默認(rèn)由2開始),F(xiàn)AT表中按編號存放簇的狀態(tài)和連續(xù)性。

在對FAT16/32磁盤進(jìn)行目錄/文件的添加、刪除、重命名以及文件的增大、減小這一系列的操作時,增加目錄/文件:找到當(dāng)前目錄所在的簇,簇已滿則重新分配新簇并修改FAT表中對應(yīng)的簇鏈,找到未使用的目錄項位置進(jìn)行添加,并為該目錄項分配簇;刪除目錄/文件:找到父目錄項的簇,修改FAT表中該目錄項的對應(yīng)的簇為未分配狀態(tài)(回收),從父目錄項下找到該項并置標(biāo)志0xE5(已刪除),刪除的目錄項將不再使用;如果該目錄項獨占一個簇還可修改FAT表來回收此簇;目錄/文件重命名:先刪除再增加;文件增大:重新為文件分配簇并修改FAT表中此文件的簇鏈信息;文件減小:直接修改FAT表中此文件的簇鏈信息并回收空出來的簇。

數(shù)據(jù)區(qū)中簇的分配原則是:盡可能連續(xù)。一個文件占用多個簇,如果簇號是連續(xù)的則可以保證最快的存取效率。比如:文件f1要占用5個簇,為其分配的簇鏈3-4-5-6-7就是一個塊。如果空閑的簇中沒有這么多連續(xù)的簇,可能分配這樣的簇鏈3-4-5-9-10就是多個塊,會出現(xiàn)很多碎片。如圖10所示,其中,簇m,簇m+1,簇m+2,簇n,簇k+1,簇j+1,簇j+2為已分配的(圖中字體加粗)。這些簇的分配狀態(tài)由FAT表來管理。

在上述FAT鏡像文件進(jìn)行壓縮時,采用上述步驟120的第一種方式進(jìn)行處理,其中第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的格式相同,其格式如下:

Chunk={Chunk類型,Chunk長度,扇區(qū)數(shù),數(shù)據(jù)};

其中,Chunk類型和Chunk長度是數(shù)據(jù)塊的結(jié)構(gòu)信息,扇區(qū)數(shù)是指數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,數(shù)據(jù)是指數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

其中,Chunk類型有兩種,RAW類型,UNUSED類型。RAW類型,表示對應(yīng)的數(shù)據(jù)結(jié)構(gòu)是已使用的,Chunk中扇區(qū)數(shù)非0且數(shù)據(jù)存在。UNUSED類型,表示對應(yīng)的數(shù)據(jù)結(jié)構(gòu)是未使用的,Chunk中扇區(qū)數(shù)非0且數(shù)據(jù)不存在。

另外,Sparse文件頭的格式如下:

Sparse文件頭={文件標(biāo)識ID,Sparse文件頭結(jié)構(gòu)體大小,Chunk頭結(jié)構(gòu)大小(即不包含數(shù)據(jù)字段的Chunk結(jié)構(gòu)體的大小),每個扇區(qū)的字節(jié)數(shù),總扇 區(qū)數(shù),Chunk總數(shù)量,數(shù)據(jù)校驗和}。

其中,每個扇區(qū)的字節(jié)數(shù),總扇區(qū)數(shù),Chunk總數(shù)量體現(xiàn)了FAT鏡像文件的整體結(jié)構(gòu)信息。Chunk頭結(jié)構(gòu)大小體現(xiàn)了數(shù)據(jù)塊的結(jié)構(gòu)信息。

按照上述Chunk和Sparse文件的文件頭的格式對FAT鏡像文件進(jìn)行處理時,創(chuàng)建FAT鏡像文件的一個壓縮文件,從源FAT鏡像文件,讀取DBR(起始512字節(jié)),得到每個扇區(qū)的字節(jié)數(shù)等信息,用其初始化壓縮文件的Sparse文件頭并添加到壓縮文件中。讀取FAT鏡像文件中保留區(qū)數(shù)據(jù),生成Chunk#0,Chunk類型為RAW類型,添加到壓縮文件中。讀取FAT表數(shù)據(jù)中每個FAT表的扇區(qū)數(shù)和FAT表的個數(shù),生成Chunk#1,Chunk類型為RAW類型,添加到壓縮文件中。從2號簇開始遍歷FAT1,為單個已使用的簇或者連續(xù)已使用的簇生成RAW類型的Chunk,為未使用的簇生成UNUSED類型的Chunk,并添加到壓縮文件。其中,每個Chunk包含的扇區(qū)數(shù)等于每個簇的扇區(qū)數(shù)與簇的個數(shù)的乘積。按照上述Sparse文件頭的格式更新Sparse文件頭并添加到壓縮文件。最后得到的Sparse文件(即壓縮文件)如圖11所示。

如果采用UNUSED類型、RAW類型和FILL類型這樣的分類方式,對數(shù)據(jù)進(jìn)行分析判斷,如果數(shù)據(jù)為某個值X的重復(fù)。這里的X為特征數(shù)據(jù),默認(rèn)的特征數(shù)據(jù)如0x00000000,0xFFFFFFFF。例如上述Chunk#0,對應(yīng)的是保留區(qū)的數(shù)據(jù)結(jié)構(gòu),保留區(qū)中,第0個扇區(qū)包含DBR信息,不可能是FILL類型,從1號扇區(qū)開始默認(rèn)情況下填充的都是0,就可以將這一部分扇區(qū)用FILL類型表示,因此,Chunk#0此時可以表示成Chunk#01(RAW類型)和Chunk#02(FILL類型,數(shù)據(jù)為0x00000000)兩個數(shù)據(jù)塊,這樣就達(dá)到了進(jìn)一步減少壓縮文件大小的目的。

本實施例中,再以exFAT鏡像文件為例,exFAT鏡像文件的磁盤鏡像中,文件系統(tǒng)可分為保留區(qū)、BOOT區(qū),F(xiàn)AT表區(qū)、數(shù)據(jù)區(qū)。

通過BOOT區(qū)主引導(dǎo)分區(qū)DBR可指定:每個扇區(qū)的字節(jié)數(shù),每個簇的扇區(qū)數(shù),每個簇的字節(jié)數(shù),F(xiàn)AT表的個數(shù),F(xiàn)AT表偏移扇區(qū)數(shù)數(shù),F(xiàn)AT表扇區(qū)數(shù), 磁盤總扇區(qū)數(shù),簇堆偏移扇區(qū)數(shù),數(shù)據(jù)區(qū)總簇數(shù)。

參照上述FAT16/32鏡像文件的處理方法,創(chuàng)建一個exFAT鏡像文件的壓縮文件,讀取exFAT鏡像文件中DBR,得到每個扇區(qū)的字節(jié)數(shù)等信息,用其初始化Sparse文件頭,并添加到壓縮文件中。讀取BOOT區(qū)FAT表偏移扇區(qū)數(shù)數(shù),創(chuàng)建Chunk#0,類型為RAW,并添加到壓縮文件。讀取簇堆分配表前FAT區(qū)后的數(shù)據(jù)創(chuàng)建Chunk#2,類型為RAW,添加到壓縮文件。從2號簇開始遍歷FAT表,為單個已使用的簇或者連續(xù)已使用的簇生成RAW類型的Chunk,為未使用的簇生成UNUSED類型的Chunk,并添加到壓縮文件。其中,每個Chunk包含的扇區(qū)數(shù)等于每個簇的扇區(qū)數(shù)與簇的個數(shù)的乘積。更新Sparse文件頭并添加到壓縮文件。

如果采用UNUSED類型、RAW類型和FILL類型這樣的分類方式,處理方式也參照上述FAT16/32鏡像文件的處理方法。

上述實施例中,將FAT鏡像文件壓縮得到壓縮文件后,還可以反向恢復(fù)成FAT鏡像文件,具體實現(xiàn)方式如下:

讀取Sparse文件的文件頭得到每個扇區(qū)的字節(jié)數(shù)、總扇區(qū)數(shù)和Chunk總數(shù)量等。按照順序讀取Chunk頭結(jié)構(gòu),如果是RAW類型,直接讀取Chunk中的數(shù)據(jù)寫入FAT鏡像文件;如果是FILL類型,則讀取特征數(shù)據(jù),寫入相應(yīng)扇區(qū)數(shù)的特征數(shù)據(jù)到FAT鏡像文件,如果是UNUSED類型,則直接在FAT鏡像文件相應(yīng)的扇區(qū)寫入全0數(shù)據(jù)。

應(yīng)當(dāng)指出的是,上述各個實施例,除了可以應(yīng)用在FAT鏡像文件壓縮場景中,還可以應(yīng)用在FAT磁盤快速克隆場景中,F(xiàn)AT鏡像的快速量產(chǎn)的場景中。

基于同樣的發(fā)明構(gòu)思,如圖12所示,本發(fā)明實施例提供一種FAT鏡像文件處理的裝置,包括創(chuàng)建壓縮文件模塊1201和壓縮文件添加模塊1202。

創(chuàng)建壓縮文件模塊1201,用于:創(chuàng)建FAT鏡像文件的壓縮文件;

壓縮文件添加模塊1202,用于:將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到壓縮文件中,該壓縮文件中不包括 FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。

本發(fā)明實施例中,創(chuàng)建FAT鏡像文件的壓縮文件;將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)添加到壓縮文件中,該壓縮文件中不包括該FAT鏡像文件中的未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的大小。這樣,不僅減少了該FAT鏡像文件的壓縮文件所占的存儲資源,并且這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

可選的,壓縮文件添加模塊1202具體用于:

生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù);

生成壓縮文件的文件頭,該壓縮文件的文件頭中包括第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;

將文件頭、第一數(shù)據(jù)塊和第二數(shù)據(jù)塊添加到壓縮文件中。

可選的,第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

可選的,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù);

如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)。

可選的,壓縮文件添加模塊1202具體用于:

生成至少一個第一數(shù)據(jù)塊,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu),每個第一數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,不包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

生成壓縮文件的文件頭,該壓縮文件的文件頭中包括第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;

將文件頭、第一數(shù)據(jù)塊和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)添加到壓縮文件中。

可選的,壓縮文件添加模塊1202具體用于:

生成至少一個第二數(shù)據(jù)塊,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu),每個第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息和數(shù)據(jù);

生成壓縮文件的文件頭,該壓縮文件的文件頭中包括FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;

將文件頭和第二數(shù)據(jù)塊添加到述壓縮文件中。

可選的,如圖13所示,該裝置還包括壓縮文件發(fā)送模塊1203。

壓縮文件發(fā)送模塊1203,用于:壓縮文件添加模塊1202將FAT鏡像文件的結(jié)構(gòu)信息和FAT鏡像文件的各個已使用的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)添加到壓縮文件中之后,發(fā)送壓縮文件。

基于同樣的發(fā)明構(gòu)思,如圖14所示,本發(fā)明實施例還提供一種FAT鏡像文件處理的裝置,包括:結(jié)構(gòu)信息讀取模塊1401、數(shù)據(jù)讀取模塊1402、第一恢復(fù)模塊1403和第二恢復(fù)模塊1404。

結(jié)構(gòu)信息讀取模塊1401,用于:從FAT鏡像文件的壓縮文件中讀取FAT鏡像文件的結(jié)構(gòu)信息,F(xiàn)AT鏡像文件中不包括未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

數(shù)據(jù)讀取模塊1402,用于:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息從壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

第一恢復(fù)模塊1403,用于:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息和已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)恢復(fù)FAT鏡像文件中已使用的數(shù)據(jù)結(jié)構(gòu);

第二恢復(fù)模塊1404,用于:根據(jù)讀取的FAT鏡像文件的結(jié)構(gòu)信息和未使 用的數(shù)據(jù)結(jié)構(gòu)的默認(rèn)數(shù)據(jù)恢復(fù)FAT鏡像文件中未使用的數(shù)據(jù)結(jié)構(gòu)。

本發(fā)明實施例中,由于壓縮文件中不包含未使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),從而減少了壓縮文件的大小,節(jié)省了壓縮文件的所占的存儲資源。并且,恢復(fù)的過程中,也不需要從壓縮文件中再讀取數(shù)據(jù)字段,直接根據(jù)默認(rèn)數(shù)據(jù)進(jìn)行恢復(fù),處理速度較快。另外,這樣的壓縮文件,在相同的傳輸速度下,所需的傳輸時間減少,從而提高了傳輸效率。

可選的,結(jié)構(gòu)信息讀取模塊1401具體用于:

從壓縮文件的文件頭中讀取第一數(shù)據(jù)塊和第二數(shù)據(jù)塊的結(jié)構(gòu)信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息從壓縮文件中查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息從壓縮文件中查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

數(shù)據(jù)讀取模塊1402具體用于:

從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

第一恢復(fù)模塊1403具體用于:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

第二恢復(fù)模塊1404具體用于:

根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,第二數(shù)據(jù)塊中包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),是指包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù)。

可選的,如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)不是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的全部數(shù)據(jù);

如果第二數(shù)據(jù)塊對應(yīng)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是對特征數(shù)據(jù)的重復(fù),第二數(shù)據(jù)塊包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)是指,包括對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù);根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中時,第一恢復(fù)模塊1403具體用于:根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的特征數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,結(jié)構(gòu)信息讀取模塊1401具體用于:從壓縮文件的文件頭中讀取第一數(shù)據(jù)塊的結(jié)構(gòu)信息,已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第一數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個未使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第一數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第一數(shù)據(jù)塊,并從查找到的第一數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

數(shù)據(jù)讀取模塊1402具體用于:根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)在壓縮文件中的位置信息從壓縮文件中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

第一恢復(fù)模塊1403具體用于:根據(jù)讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

第二恢復(fù)模塊1404具體用于:根據(jù)從查找到的第一數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,結(jié)構(gòu)信息讀取模塊1401具體用于:從壓縮文件的文件頭中讀取第二數(shù)據(jù)塊的結(jié)構(gòu)信息,未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,和FAT鏡像文件的整體結(jié)構(gòu)信息;其中,每個第二數(shù)據(jù)塊對應(yīng)一個或連續(xù)的至少兩個已使用的數(shù)據(jù)結(jié)構(gòu);根據(jù)第二數(shù)據(jù)塊的結(jié)構(gòu)信息查找到第二數(shù)據(jù)塊,并從查找到的第二數(shù)據(jù)塊中讀取對應(yīng)的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息;

數(shù)據(jù)讀取模塊1402具體用于:從查找到的第二數(shù)據(jù)塊中讀取已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù);

第一恢復(fù)模塊1403具體用于:

根據(jù)從查找到的第二數(shù)據(jù)塊中讀取的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息,將從查找到的第二數(shù)據(jù)塊中讀取的已使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中;

第二恢復(fù)模塊1404具體用于:

根據(jù)讀取的未使用的數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)信息及其在壓縮文件中的位置信息,將默認(rèn)數(shù)據(jù)寫入對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

可選的,如圖15所示,該裝置還包括壓縮文件接收模塊1405。

壓縮文件接收模塊1405用于:結(jié)構(gòu)信息讀取模塊1401從FAT鏡像文件的壓縮文件中讀取FAT鏡像文件的結(jié)構(gòu)信息之前,接收FAT鏡像文件的壓縮文件。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使 得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1