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

一種文件掃描方法及裝置制造方法

文檔序號:6624550閱讀:233來源:國知局
一種文件掃描方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種文件掃描方法及裝置,其中,所述方法包括:獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù);如果待掃描文件的硬鏈接數(shù)大于1,則在首次以待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描待掃描文件以獲取掃描結(jié)果,并將用于唯一標(biāo)識待掃描文件的文件識別標(biāo)識以及掃描結(jié)果保存至存儲單元,在再次以待掃描文件作為掃描目標(biāo)時,根據(jù)文件識別標(biāo)識從存儲單元查詢并獲取待掃描文件的掃描結(jié)果。通過對于硬鏈接數(shù)大于1的文件,僅在首次以其作為掃描文件時對其進(jìn)行掃描處理,而在再次以其作為掃描文件時直接獲取首次掃描的結(jié)果從而無需重復(fù)進(jìn)行掃描處理,這有效地降低了掃描過程中的IO開銷和CPU開銷,提高了文件掃描效率。
【專利說明】一種文件掃描方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件掃描領(lǐng)域,更為具體而言,涉及一種文件掃描方法及裝置。

【背景技術(shù)】
[0002]硬鏈接表示多個路徑引用了一個相同大小(經(jīng)過單項算法計算校驗和相同)的單個文件。具有多個硬鏈接數(shù)的文件,其在分區(qū)/卷中只有一份數(shù)據(jù)。
[0003]在現(xiàn)有的文件掃描技術(shù)中,會按照對文件的遍歷順序調(diào)用掃描引擎對文件進(jìn)行掃描處理,因此,對于具有多個硬鏈接數(shù)的文件會重復(fù)調(diào)用掃描引擎進(jìn)行掃描處理(包括讀取、計算特征等處理),這使得掃描引擎做了很多無用功,增加了掃描過程中的輸入輸出(1)開銷和中央處理器(CPU)開銷,降低了掃描效率。


【發(fā)明內(nèi)容】

[0004]為了解決現(xiàn)有的文件掃描技術(shù)所存在的缺陷,本發(fā)明實施方式提供一種文件掃描方法及裝置,能夠降低掃描過程中的1開銷和CPU開銷,提高文件掃描效率。
[0005]—方面,本發(fā)明實施方式提供了一種文件掃描方法,包括:
[0006]獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù);
[0007]如果所述待掃描文件的硬鏈接數(shù)大于1,則在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及所述待掃描文件的掃描結(jié)果保存至存儲單元,
[0008]在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0009]在本發(fā)明實施例的一種實現(xiàn)方式中,所述方法還包括:根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識。
[0010]進(jìn)一步地,所述根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識包括:獲取所述待掃描文件在磁盤中的存儲位置作為所述文件識別標(biāo)識。例如,在存儲器僅包括一個物理磁盤的情況。由此,無論待掃描文件具有多少硬鏈接數(shù),所述待掃描文件與文件識別標(biāo)識對應(yīng)。
[0011]或者,進(jìn)一步地,所述根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識包括:獲取所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置,根據(jù)所述待掃描文件所在磁盤的磁盤標(biāo)識和所述待掃描文件在磁盤中的存儲位置確定所述文件識別標(biāo)識。例如,在存儲器包括多個物理磁盤的情況。由此,即使在多個磁盤組成的存儲器中,無論待掃描文件具有多少硬鏈接數(shù),所述待掃描文件與文件識別標(biāo)識--對應(yīng)。
[0012]可選地,在該實現(xiàn)方式中,所述待掃描文件在磁盤中的存儲位置包括:待掃描文件在分區(qū)/卷中的起始簇號、在分區(qū)/卷中相對物理磁盤的起始偏移地址、在分區(qū)/卷中相對物理磁盤的起始扇區(qū)號、在物理磁盤中的起始偏移地址或在物理磁盤中的起始扇區(qū)號。
[0013]在本發(fā)明實施例的另一實現(xiàn)方式中,所述在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,包括:根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,如果所述存儲單元中沒有保存所述文件識別標(biāo)識,則調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。
[0014]由此,能及時確定首次以所述待掃描文件作為掃描目標(biāo)的情況并進(jìn)行相應(yīng)處理。
[0015]進(jìn)一步地,所述將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單元,包括:在確定所述存儲單元中沒有保存所述文件識別標(biāo)識之后,將所述文件識別標(biāo)識保存至所述存儲單元;在調(diào)用掃描引擎并獲取所述待掃描文件的掃描結(jié)果之后,將所述掃描結(jié)果保存至所述存儲單元。
[0016]其中,可以順序地執(zhí)行對文件識別標(biāo)識的保存和對掃描引擎的調(diào)用,也可以分別執(zhí)行對文件識別標(biāo)識的保存和對掃描引擎的調(diào)用。同樣地,在調(diào)用掃描引擎并獲取所述待掃描文件的掃描結(jié)果之后,可以順序地執(zhí)行對掃描結(jié)果的保存和對下一個待掃描文件的處理,也可以分別執(zhí)行對掃描結(jié)果的保存和對下一個待掃描文件的處理。
[0017]在本發(fā)明實施例的再一實現(xiàn)方式中,在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果,包括:根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,如果所述存儲單元中保存有所述文件識別標(biāo)識,則根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0018]由此,能及時確定再次以所述待掃描文件作為掃描目標(biāo)的情況并進(jìn)行相應(yīng)處理。
[0019]在本發(fā)明實施例的又一實現(xiàn)方式中,所述方法還包括:如果所述待掃描文件的硬鏈接數(shù)等于1,則調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。由此,能對硬鏈接數(shù)等于I的待掃描文件進(jìn)行處理。
[0020]相應(yīng)地,本發(fā)明實施例還提供一種文件掃描裝置,包括:
[0021]硬鏈接數(shù)獲取單元,用于獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù);
[0022]第一處理單元,用于在所述待掃描文件的硬鏈接數(shù)大于I的情況下,在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單元;
[0023]所述存儲單元,用于保存所述文件識別標(biāo)識和所述掃描結(jié)果;
[0024]第二處理單元,用于在所述待掃描文件的硬鏈接數(shù)大于I的情況下,在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0025]在本發(fā)明實施例的一種實現(xiàn)方式中,所述裝置還包括:標(biāo)識確定單元,用于根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識。
[0026]進(jìn)一步地,標(biāo)識確定單元包括:第一獲取模塊,用于獲取所述待掃描文件在磁盤中的存儲位置作為所述文件識別標(biāo)識。例如,在存儲器包含一個磁盤的情況。由此,無論待掃描文件具有多少硬鏈接數(shù),所述待掃描文件與文件識別標(biāo)識一一對應(yīng)。
[0027]或者,進(jìn)一步地,所述標(biāo)識確定單元包括:第二獲取模塊,用于獲取所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置,和標(biāo)識確定模塊,用于根據(jù)所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置確定所述文件識別標(biāo)識。例如,在存儲器包含至少兩個磁盤的情況。由此,即使在多個磁盤組成的存儲器中,無論待掃描文件具有多少硬鏈接數(shù),所述待掃描文件與文件識別標(biāo)識一一對應(yīng)。
[0028]在本發(fā)明實施例的另一種實現(xiàn)方式中,所述第一處理單元包括:第一觸發(fā)模塊,用于根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,并在確定所述存儲單元中沒有保存所述文件識別標(biāo)識時,觸發(fā)對掃描引擎的調(diào)用。
[0029]由此,能及時確定首次以次以所述待掃描文件作為掃描目標(biāo)的情況并觸發(fā)相應(yīng)處理。
[0030]進(jìn)一步地,所述第一處理單元還包括:標(biāo)識保存模塊,用于將所述文件識別標(biāo)識保存至所述存儲單元,和結(jié)果保存模塊,用于在所述第一處理單元獲取所述待掃描文件的掃描結(jié)果之后,將所述掃描結(jié)果保存至所述存儲單元;所述第一觸發(fā)模塊還用于,在確定所述存儲單元中沒有保存所述文件識別標(biāo)識時,觸發(fā)所述標(biāo)識保存模塊。
[0031]在本發(fā)明實施例的再一種實現(xiàn)方式中,所述第二處理單元包括:第二觸發(fā)模塊,用于根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,并在確定所述存儲單元中保存有所述文件識別標(biāo)識時,觸發(fā)結(jié)果獲取模塊;結(jié)果獲取模塊,用于根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0032]由此,能及時確定再次以所述待掃描文件作為掃描目標(biāo)的情況并觸發(fā)相應(yīng)處理。
[0033]在發(fā)明本實施例的又一種實現(xiàn)方式中,所述裝置還包括:第三處理單元,用于在所述待掃描文件的硬鏈接數(shù)等于I時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。由此,能對硬鏈接數(shù)等于I的待掃描文件進(jìn)行處理。
[0034]采用本發(fā)明的各種實施例具有以下有益效果:
[0035]根據(jù)文件的硬鏈接數(shù)對待掃描文件進(jìn)行處理,具體而言,對于硬鏈接數(shù)大于I的文件,僅在首次以其作為掃描文件時對其進(jìn)行掃描處理,而在再次以其作為掃描文件時直接獲取首次掃描的結(jié)果從而無需重復(fù)進(jìn)行掃描處理,這有效地降低了掃描過程中的1開銷和CPU開銷,提高了文件掃描效率。

【專利附圖】

【附圖說明】
[0036]圖1是根據(jù)本發(fā)明實施例的一種文件掃描方法的流程示意圖;
[0037]圖2是根據(jù)本發(fā)明實施例的另一種文件掃描方法的流程示意圖;
[0038]圖3是根據(jù)本發(fā)明實施例的再一種文件掃描方法的流程示意圖;
[0039]圖4是根據(jù)本發(fā)明實施例的一種文件掃描裝置的方塊圖;
[0040]圖5A是根據(jù)本發(fā)明實施例的另一種文件掃描裝置的方塊圖;
[0041 ]圖5B是根據(jù)圖5A所示實施例的一種標(biāo)識確定單元的方塊圖;
[0042]圖5C是根據(jù)圖5A所示實施例的一種標(biāo)識確定單元的方塊圖;
[0043]圖6是根據(jù)本發(fā)明實施例的一種第一處理單元的方塊圖;
[0044]圖7是根據(jù)本發(fā)明實施例的一種第二處理單元的方塊圖;
[0045]圖8是根據(jù)本發(fā)明實施例的再一種文件掃描裝置的方塊圖。

【具體實施方式】
[0046]以下結(jié)合附圖和【具體實施方式】對本發(fā)明的各個方面進(jìn)行詳細(xì)闡述。其中,眾所周知的模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細(xì)說明。并且,所描述的特征、架構(gòu)或功能可在一個或一個以上實施方式中以任何方式組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。還可以容易理解,本文所述和附圖所示的各實施方式中的模塊或單元或步驟可以按各種不同配置進(jìn)行組合和設(shè)計。
[0047]圖1是根據(jù)本發(fā)明實施例的一種文件掃描方法的流程示意圖,參照圖1,所述方法包括:
[0048]100:獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù)。
[0049]在本實施例中,可以采用任何現(xiàn)有的能夠獲取文件硬鏈接數(shù)的方法,例如,通過操作系統(tǒng)應(yīng)用程序接口獲取待掃描文件的硬鏈接數(shù)。本實施例對獲取文件硬鏈接數(shù)的方法不做具體限制。
[0050]在本發(fā)明中提及的“作為掃描目標(biāo)的待掃描文件”是指需要獲取其掃描結(jié)果的文件,而不只是指需要由掃描引擎進(jìn)行掃描的文件。在本發(fā)明實施例所適用的一種對windows (微軟視窗)系統(tǒng)文件進(jìn)行掃描的場景中,需要遍歷系統(tǒng)安裝盤windows目錄下的各個文件,并在每次遍歷到一個文件時,采用本發(fā)明實施例所提供的方法獲取該文件的掃描結(jié)果。舉例而言,當(dāng)遍歷到系統(tǒng)安裝盤windows目錄中的notepad, exe文件時,該文件即此時需要獲取其掃描結(jié)果的文件;當(dāng)遍歷到系統(tǒng)安裝盤windows目錄下system32文件夾中的not印ad.exe文件時,該文件即此時需要獲取其掃描結(jié)果的文件。在現(xiàn)有技術(shù)中,上述不同路徑下的notepad, exe文件的掃描結(jié)果均是通過調(diào)用掃描引擎掃描獲?。欢诒景l(fā)明實施例中,上述不同路徑下的notepad, exe文件的掃描結(jié)果卻是通過不同的方式獲取,下文將對此進(jìn)行具體說明。
[0051]也就是說,在遍歷文件集合(例如,文件夾)中的文件進(jìn)而依次獲取各文件的掃描結(jié)果的應(yīng)用場景中,可以在每次遍歷到一個文件時采用本發(fā)明所提供的方法獲取該文件的掃描結(jié)果,而每次遍歷到的文件即作為掃描目標(biāo)的待掃描文件。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,所謂的“遍歷”是指按照一定順序依次對待處理對象進(jìn)行一次訪問。就本發(fā)明實施例而言,每一次遍歷到一個文件之后,將該文件作為待掃描文件進(jìn)行處理,并在處理之后繼續(xù)遍歷到下一個文件進(jìn)行處理,如此重復(fù)直至遍歷結(jié)束。
[0052]102:如果所述待掃描文件的硬鏈接數(shù)大于1,則在首次以所述待掃描文件作為掃描目標(biāo)時,獲取掃描結(jié)果并保存文件識別標(biāo)識和掃描結(jié)果。具體而言,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單元。其中,存儲單元用于保存硬鏈接數(shù)大于I的文件的文件識別標(biāo)識和掃描結(jié)果。示例性地,所述存儲單元可以是諸如緩存存儲器、硬盤之類的現(xiàn)有的任意存儲介質(zhì)。換言之,待掃描文件的文件識別標(biāo)識和掃描結(jié)果可以以臨時文件或正常文件等任意的存儲形式保存。
[0053]其中,需要說明的是,在本發(fā)明中提及的“唯一標(biāo)識”可以理解為待掃描文件僅由其文件識別標(biāo)識來表示,并且二者一一對應(yīng);或者理解為,表示文件在物理磁盤、分區(qū)、卷或文件系統(tǒng)中的唯一性。舉例而言,用于唯一標(biāo)識待掃描文件的文件識別標(biāo)識可以包括:文件在分區(qū)/卷中的起始簇號、文件在分區(qū)/卷中相對物理磁盤的起始偏移地址、文件在分區(qū)/卷中相對物理磁盤的起始扇區(qū)號、文件在物理磁盤中的起始偏移地址、文件在物理磁盤中的起始扇區(qū)號、文件系統(tǒng)中表示文件唯一性的數(shù)據(jù)(例如微軟視窗操作系統(tǒng)NTFS文件系統(tǒng)FILE_ID_INFO)等。并且這一概念在存儲器包含至少兩個物理磁盤的情況下同樣適用。
[0054]104:在再次以所述待掃描文件(硬鏈接數(shù)大于I)作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0055]需要說明的是,在本發(fā)明中,“再次”包括首次之后的任意一次,而不僅是指第二次。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,由于硬鏈接的存在,在文件掃描過程中可能多次地遍歷到磁盤中的同一文件,因此,對于這樣的文件,存在首次以其作為掃描目標(biāo)的情況以及再次以其作為掃描目標(biāo)的情況。
[0056]通過本發(fā)明實施例所提供的文件掃描方法,能夠根據(jù)文件的硬鏈接數(shù)對待掃描文件進(jìn)行處理。具體而言,對于硬鏈接數(shù)大于I的文件,僅在首次以其作為掃描文件時對其進(jìn)行掃描處理,而在再次以其作為掃描文件時直接獲取首次掃描的結(jié)果從而無需重復(fù)進(jìn)行掃描處理,這有效地降低了掃描過程中的1開銷和CPU開銷,提高了文件掃描效率。
[0057]可選地,在本實施例的一種實現(xiàn)方式一中,通過以下方式確定是否為首次以待掃描文件作為掃描目標(biāo):
[0058]根據(jù)用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識查詢存儲單元,如果存儲單元中沒有保存所述文件識別標(biāo)識,則確定是首次以所述待掃描文件作為掃描目標(biāo),此時,將所述文件識別標(biāo)識保存至存儲單元并將通過掃描引擎獲取的掃描結(jié)果保存至存儲單元;反之,如果存儲單元中保存有所述文件識別標(biāo)識,則確定是再次以所述待掃描文件作為掃描目標(biāo),此時,可以通過所述存儲單元獲取掃描結(jié)果。
[0059]關(guān)于上述實現(xiàn)方式一,將在下文進(jìn)行具體說明。
[0060]可選地,在本實施例的一種實現(xiàn)方式二中,通過以下方式確定是否為首次以待掃描文件作為掃描目標(biāo):
[0061]根據(jù)用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識查詢存儲單元,如果存儲單元中沒有保存與該文件識別標(biāo)識對應(yīng)的掃描結(jié)果,則確定是首次以所述待掃描文件作為掃描目標(biāo),此時,將所述文件識別標(biāo)識保存至存儲單元并將通過掃描引擎獲取的掃描結(jié)果保存至存儲單元;反之,如果存儲單元中保存有相應(yīng)的掃描結(jié)果,則確定是再次以所述待掃描文件作為掃描目標(biāo),此時,可以通過所述存儲單元獲取掃描結(jié)果。
[0062]關(guān)于上述實現(xiàn)方式二,將在下文進(jìn)行具體說明。
[0063]當(dāng)然,確定是首次還是再次以所述待掃描文件作為掃描目標(biāo)的方法不限于上述兩種實現(xiàn)方式,但只要像圖1所示實施例那樣在“首次”、“再次”兩種情況下以分別對應(yīng)這兩種情況的處理方式獲取掃描結(jié)果,均落在本發(fā)明的保護(hù)范圍。
[0064]圖2是根據(jù)本發(fā)明實施例的另一種文件掃描方法的流程示意圖,參照圖2,所述方法包括:
[0065]200:獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù)。
[0066]可選地,在本實施例的一種實現(xiàn)方式中,可通過操作系統(tǒng)應(yīng)用程序接口(例如,微軟視窗操作系統(tǒng)的應(yīng)用程序接口 GetFileInformat1nByHandle)獲取待掃描文件的硬鏈接數(shù)。當(dāng)然,也可以采用任何現(xiàn)有的能夠獲取文件硬鏈接數(shù)的方法,本實施例對此不做具體限制。
[0067]202:如果所述待掃描文件的硬鏈接數(shù)大于1,則在首次以所述待掃描文件作為掃描目標(biāo)時,獲取掃描結(jié)果并保存文件識別標(biāo)識和掃描結(jié)果。具體而言,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及所述待掃描文件的掃描結(jié)果保存至存儲單元。
[0068]204:在再次以所述待掃描文件(硬鏈接數(shù)大于I)作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
[0069]可選地,在本實施例的一種實現(xiàn)方式中,如虛線框所示,在200之后,所述方法還可包括:
[0070]201:如果所述待掃描文件的硬鏈接數(shù)大于1,則根據(jù)所述待掃描文件在存儲器中的存儲位置確定用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識。
[0071]在一種可選實現(xiàn)方式中,201通過以下方式實現(xiàn):獲取待掃描文件在磁盤中的存儲位置作為文件識別標(biāo)識。示例性地,該實現(xiàn)方式可以用于存儲器僅包含一個物理磁盤的情況。其中,待掃描文件在磁盤中的存儲位置包括待掃描文件在分區(qū)/卷中的起始簇號、在分區(qū)/卷中相對物理磁盤的起始偏移地址、在分區(qū)/卷中相對物理磁盤的起始扇區(qū)號、在物理磁盤中的起始偏移地址、在物理磁盤中的起始扇區(qū)號等。
[0072]在另一種可選實現(xiàn)方式中,201通過以下方式實現(xiàn):首先獲取待掃描文件所在磁盤的磁盤標(biāo)識以及待掃描文件在磁盤中的存儲位置,根據(jù)待掃描文件所在磁盤的磁盤標(biāo)識和待掃描文件在磁盤中的存儲位置確定文件識別標(biāo)識。例如,以(磁盤標(biāo)識,磁盤存儲位置)的數(shù)組形式作為文件識別標(biāo)識,或者以特定編碼形式對待掃描文件所在磁盤的磁盤標(biāo)識和所述待掃描文件在磁盤中的存儲位置進(jìn)行編碼生成文件識別標(biāo)識。示例性地,該實現(xiàn)方式可以用于存儲器包含至少兩個磁盤的情況。其中,所述磁盤標(biāo)識包括諸如磁盤序列號或?qū)iT為多個磁盤分別編配的序號之類的能與磁盤一一對應(yīng)的信息。
[0073]當(dāng)然,在本發(fā)明的其它實施例中也可以采用其他信息作為所述文件識別標(biāo)識,只要該信息能夠唯一標(biāo)識所述待掃描文件,例如,專門根據(jù)所述待掃描文件在磁盤中的位置而設(shè)定的標(biāo)識符。
[0074]可選地,在201中可通過操作系統(tǒng)應(yīng)用程序接口獲取待掃描文件在磁盤中的位置信息,例如,通過微軟視窗操作系統(tǒng)的應(yīng)用程序接口 FSCTL_GET_RETRIEVAL_POINTER_BASE或FSCTL_GET_RETRIEVAL_POINTERS等。當(dāng)然,也可以采用任何其它現(xiàn)有的能夠獲取待掃描文件在磁盤中的位置的方法,本實施例對此不做具體限制。
[0075]可選地,在本實施例的一種實現(xiàn)方式中,如虛線框所示,在204之后,所述方法還可包括:
[0076]206:如果所述待掃描文件的硬鏈接數(shù)等于1,則調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。由此,能夠獲取硬鏈接數(shù)等于I的待掃描文件的掃描結(jié)果。
[0077]可選地,在本實施例的一種實現(xiàn)方式中,如虛線框所示,在206之后,所述方法還可包括:
[0078]可選地,在獲取所述待掃描文件的掃描結(jié)果之后,可以按照對文件的遍歷順序確定下一個作為掃描目標(biāo)的待掃描文件,并且對該文件進(jìn)行與200-206所示的處理相同的處理,此處不贅述。
[0079]其中,“在獲取所述待掃描文件的掃描結(jié)果之后”包括在調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果之后,也包括根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果之后。
[0080]圖3是根據(jù)本發(fā)明實施例的再一種文件掃描方法的流程示意圖,參照圖3,所述方法包括:
[0081]300:遍歷到一個文件,則該文件即作為掃描目標(biāo)的待掃描文件。
[0082]301:獲取待掃描文件的硬鏈接數(shù),本實施例對具體獲取方法不做限制。
[0083]302:判斷所述硬鏈接數(shù)是否大于1,如果不大于1,則執(zhí)行303 ;否則執(zhí)行304。
[0084]303:調(diào)用掃描引擎掃描待掃描文件從而獲取掃描結(jié)果,然后執(zhí)行300。其中,掃描結(jié)果可以是黑白灰結(jié)果標(biāo)志,具體而言,白標(biāo)志表示掃描結(jié)果正常、灰標(biāo)志表示無法確定掃描結(jié)果是否正常、黑標(biāo)志表示掃描結(jié)果不正常。掃描結(jié)果還可包括掃描結(jié)果為黑時所對應(yīng)的病毒名。
[0085]更具體而言,在本實施例的一種實現(xiàn)方式中,掃描結(jié)果可以包括多條掃描記錄,每一條掃描紀(jì)錄可包括:序號(表示第幾條掃描記錄)、文件識別標(biāo)識、文件識別標(biāo)識對應(yīng)的掃描結(jié)果以及掃描結(jié)果為黑時所對應(yīng)的病毒名。在這樣的實現(xiàn)方式中,無需同時保存一條掃描記錄中所有字段的內(nèi)容,例如,可以首先保存序號和文件識別標(biāo)識,之后再保存掃描結(jié)果及病毒名。這樣,當(dāng)對某一文件進(jìn)行“再次”掃描處理時,即使存儲單元中還未完成對“首次”掃描時獲取的掃描結(jié)果的保存,也可以先根據(jù)文件識別標(biāo)識確定不調(diào)用掃描引擎進(jìn)行掃描處理,再在設(shè)定條件(例如,設(shè)定的延時)之后從存儲單元獲取掃描結(jié)果(例如,根據(jù)與文件識別標(biāo)識對應(yīng)的序號獲取掃描結(jié)果)。這樣可以提高文件掃描的效率。
[0086]304:獲取待掃描文件在分區(qū)(或卷)中的起始簇號?;蛘撸谄渌鼘嵤├锌梢垣@取待掃描文件的起始扇區(qū)號。
[0087]305:查詢硬鏈接緩存。
[0088]306:判斷硬鏈接緩存中是否保存有待掃描文件在分區(qū)(或卷)中的起始簇號,如果是,則說明是再次以待掃描文件作為掃描目標(biāo),此時執(zhí)行307;如果不是,則說明是首次以待掃描文件作為掃描目標(biāo),此時執(zhí)行308和309。
[0089]307:根據(jù)起始簇號從硬鏈接緩存中獲取掃描結(jié)果,然后執(zhí)行300。
[0090]308:將待掃描文件在分區(qū)(或卷)中的起始簇號保存至硬鏈接緩存。
[0091]309:調(diào)用掃描引擎掃描待掃描文件從而獲取掃描結(jié)果。然后,執(zhí)行310和300。
[0092]310:將掃描結(jié)果保存至硬鏈接緩存。
[0093]在本實施例中,采用了前文提及的實現(xiàn)方式一來確定是否為首次以待掃描文件作為掃描目標(biāo)。
[0094]在本發(fā)明的另一實施例中,采用前文提及的實現(xiàn)方式二來確定是否為首次以待掃描文件作為掃描目標(biāo)。其整體流程與圖3所示實施例的區(qū)別在于,如果在306中確定硬鏈接緩存中未保存待掃描文件在分區(qū)(或卷)中的簇號,則在306之后,依次執(zhí)行308和309 ;以及,在309之后依次執(zhí)行310和300。本實施例與圖3所示實施例相比,可能會增加文件掃描時間。
[0095]以上結(jié)合圖1至圖3對本發(fā)明的文件掃描方法進(jìn)行了說明,下面將結(jié)合附圖對本發(fā)明的文件掃描裝置進(jìn)行說明。
[0096]圖4是根據(jù)本發(fā)明實施例的一種文件掃描裝置的方塊圖,參照圖4,文件掃描裝置4包括硬鏈接數(shù)獲取單元41、第一處理單元42、存儲單元43和第二處理單元44。下面分別進(jìn)行說明。
[0097]硬鏈接數(shù)獲取單元41,用于獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù)。具體的獲取方法可以是諸如通過操作系統(tǒng)的應(yīng)用程序接口進(jìn)行獲取等現(xiàn)有的任意方法,本發(fā)明對此不做限制。
[0098]第一處理單元42,用于在待掃描文件的硬鏈接數(shù)大于I的情況下,在首次以待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描待掃描文件以獲取待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單元43。
[0099]存儲單元43,用于保存所述文件識別標(biāo)識和所述掃描結(jié)果,優(yōu)選以緩存形式進(jìn)行保存。
[0100]第二處理單元44,用于在待掃描文件的硬鏈接數(shù)大于I的情況下,在再次以待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從存儲單元43查詢并獲取待掃描文件的掃描結(jié)果。
[0101]通過本發(fā)明實施例所提供的文件掃描裝置4,能夠根據(jù)文件的硬鏈接數(shù)對待掃描文件進(jìn)行處理。具體而言,對于硬鏈接數(shù)大于I的文件,僅在首次以其作為掃描文件時對其進(jìn)行掃描處理,而在再次以其作為掃描文件時直接獲取首次掃描的結(jié)果從而無需重復(fù)進(jìn)行掃描處理,這有效地降低了掃描過程中的1開銷和CPU開銷,提高了文件掃描效率。
[0102]圖5A是根據(jù)本發(fā)明實施例的另一種文件掃描裝置的方塊圖,參照圖5A,文件掃描裝置5除了包括硬鏈接數(shù)獲取單元41、第一處理單元42、存儲單元43和第二處理單元44之外,還包括標(biāo)識確定單元45,用于根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識。
[0103]可選地,在本實施例的一種實現(xiàn)方式中,如圖5B所示,標(biāo)識確定單元45包括第一獲取模塊451,用于獲取待掃描文件在磁盤中的存儲位置作為文件識別標(biāo)識。
[0104]可選地,在本實施例的一種實現(xiàn)方式中,如圖5C所示,標(biāo)識確定單元45包括:第二獲取模塊452,用于獲取待掃描文件所在磁盤的磁盤標(biāo)識以及待掃描文件在磁盤中的存儲位置;和標(biāo)識確定模塊453,用于根據(jù)待掃描文件所在磁盤的磁盤標(biāo)識以及待掃描文件在磁盤中的存儲位置確定所述文件識別標(biāo)識。
[0105]圖6是根據(jù)本發(fā)明實施例的一種第一處理單元的方塊圖,具體而言,是圖4或圖5所示文件掃描裝置中的第一處理單元42的一種方塊圖。如圖6所示,第一處理單元42包括:
[0106]第一觸發(fā)模塊421,用于根據(jù)文件識別標(biāo)識查詢存儲單元43,并在確定存儲單元43中沒有保存文件識別標(biāo)識時,觸發(fā)對掃描引擎的調(diào)用。
[0107]可選地,如虛線框所示,第一處理單元42包括:
[0108]標(biāo)識保存模塊422,用于將文件識別標(biāo)識保存至存儲單元43 ;和結(jié)果保存模塊423,用于在第一處理單元42獲取待掃描文件的掃描結(jié)果之后,將掃描結(jié)果保存至所述存儲單元43。此時,第一觸發(fā)模塊421還用于在確定存儲單元43中沒有保存文件識別標(biāo)識時,觸發(fā)標(biāo)識保存模塊422。也就是說,第一處理單元42可以在確定存儲單元43中沒有保存文件識別標(biāo)識之后,分別進(jìn)行掃描引擎的調(diào)用和文件識別標(biāo)識的存儲。當(dāng)然,在其它實施例中,第一處理單元42也可以在確定存儲單元43中沒有保存文件識別標(biāo)識之后,依次執(zhí)行文件識別標(biāo)識的存儲和掃描引擎的調(diào)用。
[0109]圖7是根據(jù)本發(fā)明實施例的一種第二處理單元的方塊圖,具體而言,是圖4或圖5所示文件掃描裝置中的第二處理單元44的方塊圖。如圖7所示,第二處理單元44包括:
[0110]第二觸發(fā)模塊441,用于根據(jù)文件識別標(biāo)識查詢存儲單元43,并在確定存儲單元43中保存有文件識別標(biāo)識時,觸發(fā)結(jié)果獲取模塊442。
[0111]結(jié)果獲取模塊442,用于根據(jù)文件識別標(biāo)識從存儲單元43查詢并獲取待掃描文件的掃描結(jié)果。
[0112]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,第一觸發(fā)模塊421和第二觸發(fā)模塊441可以集合為一個模塊,用于根據(jù)文件識別標(biāo)識查詢存儲單元43,如果存儲單元43中保存有該文件識別標(biāo)識,則觸發(fā)第二處理單元44執(zhí)行從存儲單元43獲取掃描結(jié)果的處理;如果存儲單元43中未保存文件識別標(biāo)識,則觸發(fā)第一處理單元42執(zhí)行保存文件識別標(biāo)識和獲取并保存掃描結(jié)果的處理。
[0113]圖8是根據(jù)本發(fā)明實施例的再一種文件掃描裝置的方塊圖,參照圖8,文件掃描裝置8除了包括硬鏈接數(shù)獲取單元41、第一處理單元42、存儲單元43和第二處理單元44之夕卜,還可包括第三處理單元46,用于在所述待掃描文件的硬鏈接數(shù)等于I時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。
[0114]可選地,如虛線框所示,文件掃描裝置8還可包括掃描目標(biāo)確定單元47,用于在所述裝置獲取所述待掃描文件的掃描結(jié)果之后,確定下一個作為掃描目標(biāo)的待掃描文件。
[0115]當(dāng)然,在本實施例中,文件掃描裝置8還可以包括前文所述的標(biāo)識確定單元45,此處不進(jìn)行贅述。
[0116]對于裝置實施例中各個單元和模塊的處理方式、數(shù)據(jù)流方向、涉及的術(shù)語、應(yīng)用情境等的說明,請參照方法實施例,此處不贅述。
[0117]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,智能手機(jī)或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0118]本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應(yīng)按最寬泛合理的意思進(jìn)行理解。
【權(quán)利要求】
1.一種文件掃描方法,其特征在于,所述方法包括: 獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù); 如果所述待掃描文件的硬鏈接數(shù)大于1,則在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及所述待掃描文件的掃描結(jié)果保存至存儲單元, 在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識。
3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識包括: 獲取所述待掃描文件在磁盤中的存儲位置作為所述文件識別標(biāo)識;或, 獲取所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置,根據(jù)所述待掃描文件所在磁盤的磁盤標(biāo)識和所述待掃描文件在磁盤中的存儲位置確定所述文件識別標(biāo)識。
4.如權(quán)利要求1-3中任一項所述的方法,其特征在于,所述在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,包括: 根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,如果所述存儲單元中沒有保存所述文件識別標(biāo)識,則調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。
5.如權(quán)利要求4所述的方法,其特征在于,所述將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單元,包括: 在確定所述存儲單元中沒有保存所述文件識別標(biāo)識之后,將所述文件識別標(biāo)識保存至所述存儲單元; 在調(diào)用掃描引擎并獲取所述待掃描文件的掃描結(jié)果之后,將所述掃描結(jié)果保存至所述存儲單兀。
6.如權(quán)利要求1-3中任一項所述的方法,其特征在于,在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果,包括: 根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,如果所述存儲單元中保存有所述文件識別標(biāo)識,則根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
7.如權(quán)利要求1-3中任一項所述的方法,其特征在于,所述方法還包括: 如果所述待掃描文件的硬鏈接數(shù)等于1,則調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。
8.一種文件掃描裝置,其特征在于,所述裝置包括: 硬鏈接數(shù)獲取單元,用于獲取作為掃描目標(biāo)的待掃描文件的硬鏈接數(shù); 第一處理單元,用于在所述待掃描文件的硬鏈接數(shù)大于I的情況下,在首次以所述待掃描文件作為掃描目標(biāo)時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果,并將用于唯一標(biāo)識所述待掃描文件的文件識別標(biāo)識以及對應(yīng)的所述待掃描文件的掃描結(jié)果保存至存儲單兀; 所述存儲單元,用于保存所述文件識別標(biāo)識和所述掃描結(jié)果; 第二處理單元,用于在所述待掃描文件的硬鏈接數(shù)大于I的情況下,在再次以所述待掃描文件作為掃描目標(biāo)時,根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
9.如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 標(biāo)識確定單元,用于根據(jù)所述待掃描文件在存儲器中的存儲位置確定所述文件識別標(biāo)識。
10.如權(quán)利要求9所述的裝置,其特征在于, 所述標(biāo)識確定單元包括:第一獲取模塊,用于獲取所述待掃描文件在磁盤中的存儲位置作為所述文件識別標(biāo)識;或所述標(biāo)識確定單元包括: 第二獲取模塊,用于獲取所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置,和 標(biāo)識確定模塊,用于根據(jù)所述待掃描文件所在磁盤的磁盤標(biāo)識以及所述待掃描文件在磁盤中的存儲位置確定所述文件識別標(biāo)識。
11.如權(quán)利要求8-10中任一項所述的方法,其特征在于,所述第一處理單元包括: 第一觸發(fā)模塊,用于根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,并在確定所述存儲單元中沒有保存所述文件識別標(biāo)識時,觸發(fā)對掃描引擎的調(diào)用。
12.如權(quán)利要求11所述的裝置,其特征在于, 所述第一處理單元還包括: 標(biāo)識保存模塊,用于將所述文件識別標(biāo)識保存至所述存儲單元, 結(jié)果保存模塊,用于在所述第一處理單元獲取所述待掃描文件的掃描結(jié)果之后,將所述掃描結(jié)果保存至所述存儲單元; 所述第一觸發(fā)模塊還用于,在確定所述存儲單元中沒有保存所述文件識別標(biāo)識時,觸發(fā)所述標(biāo)識保存模塊。
13.如權(quán)利要求8-10中任一項所述的裝置,其特征在于,所述第二處理單元包括: 第二觸發(fā)模塊,用于根據(jù)所述文件識別標(biāo)識查詢所述存儲單元,并在確定所述存儲單元中保存有所述文件識別標(biāo)識時,觸發(fā)結(jié)果獲取模塊; 結(jié)果獲取模塊,用于根據(jù)所述文件識別標(biāo)識從所述存儲單元查詢并獲取所述待掃描文件的掃描結(jié)果。
14.如權(quán)利要求8-10中任一項所述的裝置,其特征在于,所述裝置還包括: 第三處理單元,用于在所述待掃描文件的硬鏈接數(shù)等于I時,調(diào)用掃描引擎掃描所述待掃描文件以獲取所述待掃描文件的掃描結(jié)果。
【文檔編號】G06F17/30GK104182519SQ201410421430
【公開日】2014年12月3日 申請日期:2014年8月25日 優(yōu)先權(quán)日:2014年8月25日
【發(fā)明者】郭明強(qiáng), 錢科明, 曹亮 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1