減少冗余數(shù)據(jù)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種減少冗余數(shù)據(jù)的方法及裝置。
【背景技術(shù)】
[0002]通常情況下,大多數(shù)用戶僅了解如何在硬盤等存儲裝置中繼續(xù)保留文件,卻不知如何更好地對存儲裝置進(jìn)行維護(hù),以有效地監(jiān)控其硬盤的容量。某些情況下,具有存儲裝置的系統(tǒng)會借助一些軟件應(yīng)用程序執(zhí)行文件的查找、獲取及其編輯或者文件刪除等維護(hù)管理操作,傳統(tǒng)的硬盤文件保存是根據(jù)目錄逐個保存文件,這種方式存在一些弊端:首先,若某個硬盤有大量重復(fù)文件時,這種保存方式往往占用較大的存儲空間;其次,當(dāng)備份硬盤中的文件時,若硬盤中保存有大量重復(fù)文件,系統(tǒng)將花費(fèi)較多的時間備份這些重復(fù)文件,導(dǎo)致備份時間增加;最后,當(dāng)硬盤中的文件容量較大時,如果用戶希望從硬盤中清除這些重復(fù)的文件,則不得不逐個檢查文件,非常繁瑣。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的減少冗余數(shù)據(jù)的方法,從而提高硬盤運(yùn)行效率。
[0004]依據(jù)本發(fā)明的一個方面,提供一種減少冗余數(shù)據(jù)的方法,包括:對硬盤中各個分區(qū)的所有文件進(jìn)行遍歷;判斷所述硬盤中是否包含兩個及以上相同的文件:在確定兩個及以上文件大小相同、文件標(biāo)識不同的前提下,根據(jù)兩個及以上文件的校驗(yàn)值確定兩個及以上文件是否相同;通過創(chuàng)建硬鏈接,將兩個及以上相同的文件合并為一個文件。
[0005]優(yōu)選的,在所述判斷所述硬盤中是否包括兩個及以上相同的文件之前,還包括:從遍歷的文件中排除用戶級文件;所述判斷所述硬盤中是否包括兩個及以上相同的文件,包括:從非用戶級文件中進(jìn)行判斷是否包括兩個及以上相同的文件。
[0006]優(yōu)選的,所述從遍歷的文件中排除用戶級文件,判斷所述硬盤中是否包括兩個及以上相同的文件,包括:預(yù)先選定特定類型的文件,僅針對所述特定類型的文件進(jìn)行判斷是否包括兩個及以上相同的文件;和/或,根據(jù)文件的修改和/或創(chuàng)建日期排除預(yù)置時間段內(nèi)最新產(chǎn)生的文件,在排除最新產(chǎn)生的文件之外進(jìn)行判斷是否包括兩個及以上相同的文件。
[0007]優(yōu)選的,所述特定類型的文件包括exe文件和/或dll文件。
[0008]優(yōu)選的,所述兩個及以上文件的校驗(yàn)值是指兩個及以上文件的哈西值,在根據(jù)兩個及以上文件哈西值確定兩個及以上文件是否相同之后,還包括:對于哈西值相同的兩個及以上文件,進(jìn)一步將兩個及以上文件的完整數(shù)據(jù)進(jìn)行二進(jìn)制比較;根據(jù)完整數(shù)據(jù)比較結(jié)果,最終確定兩個及以上文件是否相同。
[0009]優(yōu)選的,所述通過創(chuàng)建硬鏈接,將兩個及以上相同的文件合并為一個文件,包括:在NTFS文件系統(tǒng)中,通過CreateHardLink指令,將兩個及以上相同文件以硬鏈接方式合并為一個文件。
[0010]—種減少冗余數(shù)據(jù)的裝置,包括:遍歷單元,用于對硬盤中各個分區(qū)的所有文件進(jìn)行遍歷;判斷單元,用于判斷所述硬盤中是否包含兩個及以上相同的文件:在確定兩個及以上文件大小相同、文件標(biāo)識不同的前提下,根據(jù)兩個及以上文件的校驗(yàn)值確定兩個及以上文件是否相同;硬鏈接合并單元,用于通過創(chuàng)建硬鏈接,將兩個及以上相同的文件合并為一個文件。
[0011]優(yōu)選的,所述裝置還包括:用戶級文件排除單元,用于從遍歷的文件中排除用戶級文件;所述判斷單元具體用于,從非用戶級文件中進(jìn)行判斷是否包括兩個及以上相同的文件。
[0012]優(yōu)選的,所述用戶級文件排除單元具體用于,預(yù)先選定特定類型的文件,排除非特定類型的文件,和/或,根據(jù)文件的修改和/或創(chuàng)建日期排除預(yù)置時間段內(nèi)最新產(chǎn)生的文件。
[0013]優(yōu)選的,所述特定類型的文件包括exe文件和/或dll文件。
[0014]優(yōu)選的,所述判斷單元具體用于,根據(jù)兩個及以上文件的哈西值確定兩個及以上文件是否相同;所述判斷單元還用于,對于哈西值相同的兩個及以上文件,進(jìn)一步將兩個及以上文件的完整數(shù)據(jù)進(jìn)行二進(jìn)制比較;根據(jù)完整數(shù)據(jù)比較結(jié)果,最終確定兩個及以上文件是否相同。
[0015]優(yōu)選的,所述硬鏈接合并單元具體用于,在NTFS文件系統(tǒng)中,通過CreateHardLink指令,將兩個及以上相同文件以硬鏈接方式合并為一個文件。
[0016]—種基于減少冗余數(shù)據(jù)的文件管理方法,包括:對硬盤中各個分區(qū)的所有文件進(jìn)行遍歷;判斷所述硬盤中是否包含兩個及以上相同的文件:在確定兩個及以上文件大小相同、文件標(biāo)識不同的前提下,根據(jù)兩個及以上文件的校驗(yàn)值確定兩個及以上文件是否相同;通過創(chuàng)建硬鏈接,將兩個及以上相同的文件合并為一個文件;維護(hù)所述硬鏈接文件與一個或多個文件名的硬鏈接對應(yīng)關(guān)系,在針對所述一個或多個文件名對所述硬鏈接文件進(jìn)行更新、刪除和/或修改時,通過維護(hù)所述硬鏈接對應(yīng)關(guān)系,統(tǒng)一對所述硬鏈接文件進(jìn)行所述更新、刪除和/或修改的操作。
[0017]優(yōu)選的,所述硬鏈接對應(yīng)關(guān)系中包括文件鏈接數(shù),所述文件鏈接數(shù)對應(yīng)于所述一個或多個文件名的數(shù)量;在針對一個或多個文件名之一進(jìn)行刪除時,將所述文件鏈接數(shù)減一,直到所述文件鏈接數(shù)為零時,才對所述硬鏈接文件進(jìn)行刪除。
[0018]優(yōu)選的,在對硬鏈接文件進(jìn)行更新時,將待更新文件的硬鏈接關(guān)系修改為更新后文件的硬鏈接關(guān)系。
[0019]優(yōu)選的在針對一個或多個文件名之一進(jìn)行文件修改時,統(tǒng)一對所述硬鏈接文件進(jìn)行修改。
[0020]可見,上述方案通過硬鏈接將重復(fù)的文件合并為一個文件,可減少硬盤中的冗余數(shù)據(jù),節(jié)省硬盤空間并提高硬盤運(yùn)行效率。在本發(fā)明的一個優(yōu)選實(shí)施例中,通過排除用戶級文件,可提高文件判斷的速度,并且跳過這些用戶級的特定文件,可以避免產(chǎn)生兼容性問題。在本發(fā)明的另一個優(yōu)選實(shí)施例中,通過完整數(shù)據(jù)比較確定文件是否相同,更為準(zhǔn)確,降低誤判的幾率。
[0021]另外,本發(fā)明可至少帶來以下幾個方面的優(yōu)點(diǎn):(1)節(jié)省硬盤空間。同樣的文件,只需要維護(hù)硬鏈接關(guān)系,不需要進(jìn)行多重的拷貝,這樣可以節(jié)省硬盤空間。(2)重命名文件。重命名文件并不需要打開該文件,只需改動某個目錄項的內(nèi)容即可。(3)刪除文件。刪除文件只需將相應(yīng)的目錄項刪除,該文件的鏈接數(shù)減1,如果刪除目錄項后該文件的鏈接數(shù)為零,這時系統(tǒng)才把真正的文件從磁盤上刪除。(4)文件更新。如果涉及文件更新,例如在Windows系統(tǒng)下,只需要先在WinSxS目錄里面下載好一個新版本,然后修改Windows\System32下面同名文件的硬鏈接關(guān)系,從舊版本的硬鏈接指向新版本的硬鏈接,這樣就能夠快速的完成文件的更新工作,而不需要進(jìn)行文件的復(fù)制,速度會明顯提高。(5)卸載補(bǔ)丁。遇到需要補(bǔ)丁卸載的情況,只需要把硬鏈接指向改為舊版本即可,沒有文件替換的問題。而且建立了硬鏈接關(guān)系的文件之間的修改是同步的,因此只要有一方被修改了,另一方也會得到修改。
[0022]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0023]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0024]圖1示出了根據(jù)本發(fā)明一個實(shí)施例的減少冗余數(shù)據(jù)的方法流程圖;
[0025]圖2示出了根據(jù)本發(fā)明另一個實(shí)施例的減少冗余數(shù)據(jù)的方法流程圖;
[0026]圖3a_3b示出了根據(jù)本發(fā)明一個實(shí)施例的減少冗余數(shù)據(jù)的方法中文件硬鏈接示意圖;
[0027]圖4示出了根據(jù)本發(fā)明一個實(shí)施例的減少冗余數(shù)據(jù)的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0029]硬盤中往往存在這這樣的情況,二個文件內(nèi)容完全一致,但是卻分散在不同的位置。比如360網(wǎng)盤跟360衛(wèi)士其實(shí)很多文件都是共同的,這就導(dǎo)致硬盤存放了大量重復(fù)文件,降低了硬盤的可用率,造成了極大的浪費(fèi)。
[°03°] 本領(lǐng)域技術(shù)人員了解,NTFS(New Technology File System,新技術(shù)文件系統(tǒng)),是WindowsNT環(huán)境的文件系統(tǒng)。新技術(shù)文件系統(tǒng)是Windows NT家族(如,Windows 2000、Windows XP、Windows Vista、Windows 7和windows 8.1)等的限制級專用的文件系統(tǒng)(操作系統(tǒng)所在的盤符的文件系統(tǒng)必須格式化為NTFS的文件系統(tǒng),4096簇環(huán)境下KNTFS取代了老式的FAT文件系統(tǒng)。NTFS對FAT和HPFS作了若干改進(jìn),例如,支持元數(shù)據(jù),并且使用了高級數(shù)據(jù)結(jié)構(gòu),以便于改善性能、可靠性和磁盤空間利用率,并提供了若干附加擴(kuò)展功