CN104182519B - 一种文件扫描方法及装置 - Google Patents
一种文件扫描方法及装置 Download PDFInfo
- Publication number
- CN104182519B CN104182519B CN201410421430.0A CN201410421430A CN104182519B CN 104182519 B CN104182519 B CN 104182519B CN 201410421430 A CN201410421430 A CN 201410421430A CN 104182519 B CN104182519 B CN 104182519B
- Authority
- CN
- China
- Prior art keywords
- file
- scanned
- scanning
- mark
- memory cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种文件扫描方法及装置,其中,所述方法包括:获取作为扫描目标的待扫描文件的硬链接数;如果待扫描文件的硬链接数大于1,则在首次以待扫描文件作为扫描目标时,调用扫描引擎扫描待扫描文件以获取扫描结果,并将用于唯一标识待扫描文件的文件识别标识以及扫描结果保存至存储单元,在再次以待扫描文件作为扫描目标时,根据文件识别标识从存储单元查询并获取待扫描文件的扫描结果。通过对于硬链接数大于1的文件,仅在首次以其作为扫描文件时对其进行扫描处理,而在再次以其作为扫描文件时直接获取首次扫描的结果从而无需重复进行扫描处理,这有效地降低了扫描过程中的IO开销和CPU开销,提高了文件扫描效率。
Description
技术领域
本发明涉及文件扫描领域,更为具体而言,涉及一种文件扫描方法及装置。
背景技术
硬链接表示多个路径引用了一个相同大小(经过单项算法计算校验和相同)的单个文件。具有多个硬链接数的文件,其在分区/卷中只有一份数据。
在现有的文件扫描技术中,会按照对文件的遍历顺序调用扫描引擎对文件进行扫描处理,因此,对于具有多个硬链接数的文件会重复调用扫描引擎进行扫描处理(包括读取、计算特征等处理),这使得扫描引擎做了很多无用功,增加了扫描过程中的输入输出(IO)开销和中央处理器(CPU)开销,降低了扫描效率。
发明内容
为了解决现有的文件扫描技术所存在的缺陷,本发明实施方式提供一种文件扫描方法及装置,能够降低扫描过程中的IO开销和CPU开销,提高文件扫描效率。
一方面,本发明实施方式提供了一种文件扫描方法,包括:
获取作为扫描目标的待扫描文件的硬链接数;
如果所述待扫描文件的硬链接数大于1,则在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及所述待扫描文件的扫描结果保存至存储单元,
在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
在本发明实施例的一种实现方式中,所述方法还包括:根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识。
进一步地,所述根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识包括:获取所述待扫描文件在磁盘中的存储位置作为所述文件识别标识。例如,在存储器仅包括一个物理磁盘的情况。由此,无论待扫描文件具有多少硬链接数,所述待扫描文件与文件识别标识一一对应。
或者,进一步地,所述根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识包括:获取所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置,根据所述待扫描文件所在磁盘的磁盘标识和所述待扫描文件在磁盘中的存储位置确定所述文件识别标识。例如,在存储器包括多个物理磁盘的情况。由此,即使在多个磁盘组成的存储器中,无论待扫描文件具有多少硬链接数,所述待扫描文件与文件识别标识一一对应。
可选地,在该实现方式中,所述待扫描文件在磁盘中的存储位置包括:待扫描文件在分区/卷中的起始簇号、在分区/卷中相对物理磁盘的起始偏移地址、在分区/卷中相对物理磁盘的起始扇区号、在物理磁盘中的起始偏移地址或在物理磁盘中的起始扇区号。
在本发明实施例的另一实现方式中,所述在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,包括:根据所述文件识别标识查询所述存储单元,如果所述存储单元中没有保存所述文件识别标识,则调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。
由此,能及时确定首次以所述待扫描文件作为扫描目标的情况并进行相应处理。
进一步地,所述将用于唯一标识所述待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元,包括:在确定所述存储单元中没有保存所述文件识别标识之后,将所述文件识别标识保存至所述存储单元;在调用扫描引擎并获取所述待扫描文件的扫描结果之后,将所述扫描结果保存至所述存储单元。
其中,可以顺序地执行对文件识别标识的保存和对扫描引擎的调用,也可以分别执行对文件识别标识的保存和对扫描引擎的调用。同样地,在调用扫描引擎并获取所述待扫描文件的扫描结果之后,可以顺序地执行对扫描结果的保存和对下一个待扫描文件的处理,也可以分别执行对扫描结果的保存和对下一个待扫描文件的处理。
在本发明实施例的再一实现方式中,在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果,包括:根据所述文件识别标识查询所述存储单元,如果所述存储单元中保存有所述文件识别标识,则根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
由此,能及时确定再次以所述待扫描文件作为扫描目标的情况并进行相应处理。
在本发明实施例的又一实现方式中,所述方法还包括:如果所述待扫描文件的硬链接数等于1,则调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。由此,能对硬链接数等于1的待扫描文件进行处理。
相应地,本发明实施例还提供一种文件扫描装置,包括:
硬链接数获取单元,用于获取作为扫描目标的待扫描文件的硬链接数;
第一处理单元,用于在所述待扫描文件的硬链接数大于1的情况下,在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元;
所述存储单元,用于保存所述文件识别标识和所述扫描结果;
第二处理单元,用于在所述待扫描文件的硬链接数大于1的情况下,在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
在本发明实施例的一种实现方式中,所述装置还包括:标识确定单元,用于根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识。
进一步地,标识确定单元包括:第一获取模块,用于获取所述待扫描文件在磁盘中的存储位置作为所述文件识别标识。例如,在存储器包含一个磁盘的情况。由此,无论待扫描文件具有多少硬链接数,所述待扫描文件与文件识别标识一一对应。
或者,进一步地,所述标识确定单元包括:第二获取模块,用于获取所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置,和标识确定模块,用于根据所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置确定所述文件识别标识。例如,在存储器包含至少两个磁盘的情况。由此,即使在多个磁盘组成的存储器中,无论待扫描文件具有多少硬链接数,所述待扫描文件与文件识别标识一一对应。
在本发明实施例的另一种实现方式中,所述第一处理单元包括:第一触发模块,用于根据所述文件识别标识查询所述存储单元,并在确定所述存储单元中没有保存所述文件识别标识时,触发对扫描引擎的调用。
由此,能及时确定首次以次以所述待扫描文件作为扫描目标的情况并触发相应处理。
进一步地,所述第一处理单元还包括:标识保存模块,用于将所述文件识别标识保存至所述存储单元,和结果保存模块,用于在所述第一处理单元获取所述待扫描文件的扫描结果之后,将所述扫描结果保存至所述存储单元;所述第一触发模块还用于,在确定所述存储单元中没有保存所述文件识别标识时,触发所述标识保存模块。
在本发明实施例的再一种实现方式中,所述第二处理单元包括:第二触发模块,用于根据所述文件识别标识查询所述存储单元,并在确定所述存储单元中保存有所述文件识别标识时,触发结果获取模块;结果获取模块,用于根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
由此,能及时确定再次以所述待扫描文件作为扫描目标的情况并触发相应处理。
在发明本实施例的又一种实现方式中,所述装置还包括:第三处理单元,用于在所述待扫描文件的硬链接数等于1时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。由此,能对硬链接数等于1的待扫描文件进行处理。
采用本发明的各种实施例具有以下有益效果:
根据文件的硬链接数对待扫描文件进行处理,具体而言,对于硬链接数大于1的文件,仅在首次以其作为扫描文件时对其进行扫描处理,而在再次以其作为扫描文件时直接获取首次扫描的结果从而无需重复进行扫描处理,这有效地降低了扫描过程中的IO开销和CPU开销,提高了文件扫描效率。
附图说明
图1是根据本发明实施例的一种文件扫描方法的流程示意图;
图2是根据本发明实施例的另一种文件扫描方法的流程示意图;
图3是根据本发明实施例的再一种文件扫描方法的流程示意图;
图4是根据本发明实施例的一种文件扫描装置的方块图;
图5A是根据本发明实施例的另一种文件扫描装置的方块图;
图5B是根据图5A所示实施例的一种标识确定单元的方块图;
图5C是根据图5A所示实施例的一种标识确定单元的方块图;
图6是根据本发明实施例的一种第一处理单元的方块图;
图7是根据本发明实施例的一种第二处理单元的方块图;
图8是根据本发明实施例的再一种文件扫描装置的方块图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配置进行组合和设计。
图1是根据本发明实施例的一种文件扫描方法的流程示意图,参照图1,所述方法包括:
100:获取作为扫描目标的待扫描文件的硬链接数。
在本实施例中,可以采用任何现有的能够获取文件硬链接数的方法,例如,通过操作系统应用程序接口获取待扫描文件的硬链接数。本实施例对获取文件硬链接数的方法不做具体限制。
在本发明中提及的“作为扫描目标的待扫描文件”是指需要获取其扫描结果的文件,而不只是指需要由扫描引擎进行扫描的文件。在本发明实施例所适用的一种对windows(微软视窗)系统文件进行扫描的场景中,需要遍历系统安装盘windows目录下的各个文件,并在每次遍历到一个文件时,采用本发明实施例所提供的方法获取该文件的扫描结果。举例而言,当遍历到系统安装盘windows目录中的notepad.exe文件时,该文件即此时需要获取其扫描结果的文件;当遍历到系统安装盘windows目录下system32文件夹中的notepad.exe文件时,该文件即此时需要获取其扫描结果的文件。在现有技术中,上述不同路径下的notepad.exe文件的扫描结果均是通过调用扫描引擎扫描获取;而在本发明实施例中,上述不同路径下的notepad.exe文件的扫描结果却是通过不同的方式获取,下文将对此进行具体说明。
也就是说,在遍历文件集合(例如,文件夹)中的文件进而依次获取各文件的扫描结果的应用场景中,可以在每次遍历到一个文件时采用本发明所提供的方法获取该文件的扫描结果,而每次遍历到的文件即作为扫描目标的待扫描文件。本领域技术人员应当理解,所谓的“遍历”是指按照一定顺序依次对待处理对象进行一次访问。就本发明实施例而言,每一次遍历到一个文件之后,将该文件作为待扫描文件进行处理,并在处理之后继续遍历到下一个文件进行处理,如此重复直至遍历结束。
102:如果所述待扫描文件的硬链接数大于1,则在首次以所述待扫描文件作为扫描目标时,获取扫描结果并保存文件识别标识和扫描结果。具体而言,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元。其中,存储单元用于保存硬链接数大于1的文件的文件识别标识和扫描结果。示例性地,所述存储单元可以是诸如缓存存储器、硬盘之类的现有的任意存储介质。换言之,待扫描文件的文件识别标识和扫描结果可以以临时文件或正常文件等任意的存储形式保存。
其中,需要说明的是,在本发明中提及的“唯一标识”可以理解为待扫描文件仅由其文件识别标识来表示,并且二者一一对应;或者理解为,表示文件在物理磁盘、分区、卷或文件系统中的唯一性。举例而言,用于唯一标识待扫描文件的文件识别标识可以包括:文件在分区/卷中的起始簇号、文件在分区/卷中相对物理磁盘的起始偏移地址、文件在分区/卷中相对物理磁盘的起始扇区号、文件在物理磁盘中的起始偏移地址、文件在物理磁盘中的起始扇区号、文件系统中表示文件唯一性的数据(例如微软视窗操作系统NTFS文件系统FILE_ID_INFO)等。并且这一概念在存储器包含至少两个物理磁盘的情况下同样适用。
104:在再次以所述待扫描文件(硬链接数大于1)作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
需要说明的是,在本发明中,“再次”包括首次之后的任意一次,而不仅是指第二次。本领域技术人员应当理解,由于硬链接的存在,在文件扫描过程中可能多次地遍历到磁盘中的同一文件,因此,对于这样的文件,存在首次以其作为扫描目标的情况以及再次以其作为扫描目标的情况。
通过本发明实施例所提供的文件扫描方法,能够根据文件的硬链接数对待扫描文件进行处理。具体而言,对于硬链接数大于1的文件,仅在首次以其作为扫描文件时对其进行扫描处理,而在再次以其作为扫描文件时直接获取首次扫描的结果从而无需重复进行扫描处理,这有效地降低了扫描过程中的IO开销和CPU开销,提高了文件扫描效率。
可选地,在本实施例的一种实现方式一中,通过以下方式确定是否为首次以待扫描文件作为扫描目标:
根据用于唯一标识所述待扫描文件的文件识别标识查询存储单元,如果存储单元中没有保存所述文件识别标识,则确定是首次以所述待扫描文件作为扫描目标,此时,将所述文件识别标识保存至存储单元并将通过扫描引擎获取的扫描结果保存至存储单元;反之,如果存储单元中保存有所述文件识别标识,则确定是再次以所述待扫描文件作为扫描目标,此时,可以通过所述存储单元获取扫描结果。
关于上述实现方式一,将在下文进行具体说明。
可选地,在本实施例的一种实现方式二中,通过以下方式确定是否为首次以待扫描文件作为扫描目标:
根据用于唯一标识所述待扫描文件的文件识别标识查询存储单元,如果存储单元中没有保存与该文件识别标识对应的扫描结果,则确定是首次以所述待扫描文件作为扫描目标,此时,将所述文件识别标识保存至存储单元并将通过扫描引擎获取的扫描结果保存至存储单元;反之,如果存储单元中保存有相应的扫描结果,则确定是再次以所述待扫描文件作为扫描目标,此时,可以通过所述存储单元获取扫描结果。
关于上述实现方式二,将在下文进行具体说明。
当然,确定是首次还是再次以所述待扫描文件作为扫描目标的方法不限于上述两种实现方式,但只要像图1所示实施例那样在“首次”、“再次”两种情况下以分别对应这两种情况的处理方式获取扫描结果,均落在本发明的保护范围。
图2是根据本发明实施例的另一种文件扫描方法的流程示意图,参照图2,所述方法包括:
200:获取作为扫描目标的待扫描文件的硬链接数。
可选地,在本实施例的一种实现方式中,可通过操作系统应用程序接口(例如,微软视窗操作系统的应用程序接口GetFileInformationByHandle)获取待扫描文件的硬链接数。当然,也可以采用任何现有的能够获取文件硬链接数的方法,本实施例对此不做具体限制。
202:如果所述待扫描文件的硬链接数大于1,则在首次以所述待扫描文件作为扫描目标时,获取扫描结果并保存文件识别标识和扫描结果。具体而言,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及所述待扫描文件的扫描结果保存至存储单元。
204:在再次以所述待扫描文件(硬链接数大于1)作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
可选地,在本实施例的一种实现方式中,如虚线框所示,在200之后,所述方法还可包括:
201:如果所述待扫描文件的硬链接数大于1,则根据所述待扫描文件在存储器中的存储位置确定用于唯一标识所述待扫描文件的文件识别标识。
在一种可选实现方式中,201通过以下方式实现:获取待扫描文件在磁盘中的存储位置作为文件识别标识。示例性地,该实现方式可以用于存储器仅包含一个物理磁盘的情况。其中,待扫描文件在磁盘中的存储位置包括待扫描文件在分区/卷中的起始簇号、在分区/卷中相对物理磁盘的起始偏移地址、在分区/卷中相对物理磁盘的起始扇区号、在物理磁盘中的起始偏移地址、在物理磁盘中的起始扇区号等。
在另一种可选实现方式中,201通过以下方式实现:首先获取待扫描文件所在磁盘的磁盘标识以及待扫描文件在磁盘中的存储位置,根据待扫描文件所在磁盘的磁盘标识和待扫描文件在磁盘中的存储位置确定文件识别标识。例如,以(磁盘标识,磁盘存储位置)的数组形式作为文件识别标识,或者以特定编码形式对待扫描文件所在磁盘的磁盘标识和所述待扫描文件在磁盘中的存储位置进行编码生成文件识别标识。示例性地,该实现方式可以用于存储器包含至少两个磁盘的情况。其中,所述磁盘标识包括诸如磁盘序列号或专门为多个磁盘分别编配的序号之类的能与磁盘一一对应的信息。
当然,在本发明的其它实施例中也可以采用其他信息作为所述文件识别标识,只要该信息能够唯一标识所述待扫描文件,例如,专门根据所述待扫描文件在磁盘中的位置而设定的标识符。
可选地,在201中可通过操作系统应用程序接口获取待扫描文件在磁盘中的位置信息,例如,通过微软视窗操作系统的应用程序接口FSCTL_GET_RETRIEVAL_POINTER_BASE或FSCTL_GET_RETRIEVAL_POINTERS等。当然,也可以采用任何其它现有的能够获取待扫描文件在磁盘中的位置的方法,本实施例对此不做具体限制。
可选地,在本实施例的一种实现方式中,如虚线框所示,在204之后,所述方法还可包括:
206:如果所述待扫描文件的硬链接数等于1,则调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。由此,能够获取硬链接数等于1的待扫描文件的扫描结果。
可选地,在本实施例的一种实现方式中,如虚线框所示,在206之后,所述方法还可包括:
可选地,在获取所述待扫描文件的扫描结果之后,可以按照对文件的遍历顺序确定下一个作为扫描目标的待扫描文件,并且对该文件进行与200-206所示的处理相同的处理,此处不赘述。
其中,“在获取所述待扫描文件的扫描结果之后”包括在调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果之后,也包括根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果之后。
图3是根据本发明实施例的再一种文件扫描方法的流程示意图,参照图3,所述方法包括:
300:遍历到一个文件,则该文件即作为扫描目标的待扫描文件。
301:获取待扫描文件的硬链接数,本实施例对具体获取方法不做限制。
302:判断所述硬链接数是否大于1,如果不大于1,则执行303;否则执行304。
303:调用扫描引擎扫描待扫描文件从而获取扫描结果,然后执行300。其中,扫描结果可以是黑白灰结果标志,具体而言,白标志表示扫描结果正常、灰标志表示无法确定扫描结果是否正常、黑标志表示扫描结果不正常。扫描结果还可包括扫描结果为黑时所对应的病毒名。
更具体而言,在本实施例的一种实现方式中,扫描结果可以包括多条扫描记录,每一条扫描纪录可包括:序号(表示第几条扫描记录)、文件识别标识、文件识别标识对应的扫描结果以及扫描结果为黑时所对应的病毒名。在这样的实现方式中,无需同时保存一条扫描记录中所有字段的内容,例如,可以首先保存序号和文件识别标识,之后再保存扫描结果及病毒名。这样,当对某一文件进行“再次”扫描处理时,即使存储单元中还未完成对“首次”扫描时获取的扫描结果的保存,也可以先根据文件识别标识确定不调用扫描引擎进行扫描处理,再在设定条件(例如,设定的延时)之后从存储单元获取扫描结果(例如,根据与文件识别标识对应的序号获取扫描结果)。这样可以提高文件扫描的效率。
304:获取待扫描文件在分区(或卷)中的起始簇号。或者,在其它实施例中可以获取待扫描文件的起始扇区号。
305:查询硬链接缓存。
306:判断硬链接缓存中是否保存有待扫描文件在分区(或卷)中的起始簇号,如果是,则说明是再次以待扫描文件作为扫描目标,此时执行307;如果不是,则说明是首次以待扫描文件作为扫描目标,此时执行308和309。
307:根据起始簇号从硬链接缓存中获取扫描结果,然后执行300。
308:将待扫描文件在分区(或卷)中的起始簇号保存至硬链接缓存。
309:调用扫描引擎扫描待扫描文件从而获取扫描结果。然后,执行310和300。
310:将扫描结果保存至硬链接缓存。
在本实施例中,采用了前文提及的实现方式一来确定是否为首次以待扫描文件作为扫描目标。
在本发明的另一实施例中,采用前文提及的实现方式二来确定是否为首次以待扫描文件作为扫描目标。其整体流程与图3所示实施例的区别在于,如果在306中确定硬链接缓存中未保存待扫描文件在分区(或卷)中的簇号,则在306之后,依次执行308和309;以及,在309之后依次执行310和300。本实施例与图3所示实施例相比,可能会增加文件扫描时间。
以上结合图1至图3对本发明的文件扫描方法进行了说明,下面将结合附图对本发明的文件扫描装置进行说明。
图4是根据本发明实施例的一种文件扫描装置的方块图,参照图4,文件扫描装置4包括硬链接数获取单元41、第一处理单元42、存储单元43和第二处理单元44。下面分别进行说明。
硬链接数获取单元41,用于获取作为扫描目标的待扫描文件的硬链接数。具体的获取方法可以是诸如通过操作系统的应用程序接口进行获取等现有的任意方法,本发明对此不做限制。
第一处理单元42,用于在待扫描文件的硬链接数大于1的情况下,在首次以待扫描文件作为扫描目标时,调用扫描引擎扫描待扫描文件以获取待扫描文件的扫描结果,并将用于唯一标识待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元43。
存储单元43,用于保存所述文件识别标识和所述扫描结果,优选以缓存形式进行保存。
第二处理单元44,用于在待扫描文件的硬链接数大于1的情况下,在再次以待扫描文件作为扫描目标时,根据所述文件识别标识从存储单元43查询并获取待扫描文件的扫描结果。
通过本发明实施例所提供的文件扫描装置4,能够根据文件的硬链接数对待扫描文件进行处理。具体而言,对于硬链接数大于1的文件,仅在首次以其作为扫描文件时对其进行扫描处理,而在再次以其作为扫描文件时直接获取首次扫描的结果从而无需重复进行扫描处理,这有效地降低了扫描过程中的IO开销和CPU开销,提高了文件扫描效率。
图5A是根据本发明实施例的另一种文件扫描装置的方块图,参照图5A,文件扫描装置5除了包括硬链接数获取单元41、第一处理单元42、存储单元43和第二处理单元44之外,还包括标识确定单元45,用于根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识。
可选地,在本实施例的一种实现方式中,如图5B所示,标识确定单元45包括第一获取模块451,用于获取待扫描文件在磁盘中的存储位置作为文件识别标识。
可选地,在本实施例的一种实现方式中,如图5C所示,标识确定单元45包括:第二获取模块452,用于获取待扫描文件所在磁盘的磁盘标识以及待扫描文件在磁盘中的存储位置;和标识确定模块453,用于根据待扫描文件所在磁盘的磁盘标识以及待扫描文件在磁盘中的存储位置确定所述文件识别标识。
图6是根据本发明实施例的一种第一处理单元的方块图,具体而言,是图4或图5所示文件扫描装置中的第一处理单元42的一种方块图。如图6所示,第一处理单元42包括:
第一触发模块421,用于根据文件识别标识查询存储单元43,并在确定存储单元43中没有保存文件识别标识时,触发对扫描引擎的调用。
可选地,如虚线框所示,第一处理单元42包括:
标识保存模块422,用于将文件识别标识保存至存储单元43;和结果保存模块423,用于在第一处理单元42获取待扫描文件的扫描结果之后,将扫描结果保存至所述存储单元43。此时,第一触发模块421还用于在确定存储单元43中没有保存文件识别标识时,触发标识保存模块422。也就是说,第一处理单元42可以在确定存储单元43中没有保存文件识别标识之后,分别进行扫描引擎的调用和文件识别标识的存储。当然,在其它实施例中,第一处理单元42也可以在确定存储单元43中没有保存文件识别标识之后,依次执行文件识别标识的存储和扫描引擎的调用。
图7是根据本发明实施例的一种第二处理单元的方块图,具体而言,是图4或图5所示文件扫描装置中的第二处理单元44的方块图。如图7所示,第二处理单元44包括:
第二触发模块441,用于根据文件识别标识查询存储单元43,并在确定存储单元43中保存有文件识别标识时,触发结果获取模块442。
结果获取模块442,用于根据文件识别标识从存储单元43查询并获取待扫描文件的扫描结果。
本领域技术人员应当理解,第一触发模块421和第二触发模块441可以集合为一个模块,用于根据文件识别标识查询存储单元43,如果存储单元43中保存有该文件识别标识,则触发第二处理单元44执行从存储单元43获取扫描结果的处理;如果存储单元43中未保存文件识别标识,则触发第一处理单元42执行保存文件识别标识和获取并保存扫描结果的处理。
图8是根据本发明实施例的再一种文件扫描装置的方块图,参照图8,文件扫描装置8除了包括硬链接数获取单元41、第一处理单元42、存储单元43和第二处理单元44之外,还可包括第三处理单元46,用于在所述待扫描文件的硬链接数等于1时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。
可选地,如虚线框所示,文件扫描装置8还可包括扫描目标确定单元47,用于在所述装置获取所述待扫描文件的扫描结果之后,确定下一个作为扫描目标的待扫描文件。
当然,在本实施例中,文件扫描装置8还可以包括前文所述的标识确定单元45,此处不进行赘述。
对于装置实施例中各个单元和模块的处理方式、数据流方向、涉及的术语、应用情境等的说明,请参照方法实施例,此处不赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (14)
1.一种文件扫描方法,其特征在于,所述方法包括:
获取作为扫描目标的待扫描文件的硬链接数;
如果所述待扫描文件的硬链接数大于1,则在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及所述待扫描文件的扫描结果保存至存储单元,其中,所述文件识别标识用于表示所述待扫描文件在物理磁盘、分区、卷或文件系统中的唯一性,
在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识。
3.如权利要求2所述的方法,其特征在于,根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识包括:
获取所述待扫描文件在磁盘中的存储位置作为所述文件识别标识;或,
获取所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置,根据所述待扫描文件所在磁盘的磁盘标识和所述待扫描文件在磁盘中的存储位置确定所述文件识别标识。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,包括:
根据所述文件识别标识查询所述存储单元,如果所述存储单元中没有保存所述文件识别标识,则调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。
5.如权利要求4所述的方法,其特征在于,所述将用于唯一标识所述待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元,包括:
在确定所述存储单元中没有保存所述文件识别标识之后,将所述文件识别标识保存至所述存储单元;
在调用扫描引擎并获取所述待扫描文件的扫描结果之后,将所述扫描结果保存至所述存储单元。
6.如权利要求1-3中任一项所述的方法,其特征在于,在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果,包括:
根据所述文件识别标识查询所述存储单元,如果所述存储单元中保存有所述文件识别标识,则根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
7.如权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
如果所述待扫描文件的硬链接数等于1,则调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。
8.一种文件扫描装置,其特征在于,所述装置包括:
硬链接数获取单元,用于获取作为扫描目标的待扫描文件的硬链接数;
第一处理单元,用于在所述待扫描文件的硬链接数大于1的情况下,在首次以所述待扫描文件作为扫描目标时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果,并将用于唯一标识所述待扫描文件的文件识别标识以及对应的所述待扫描文件的扫描结果保存至存储单元,其中,所述文件识别标识用于表示所述待扫描文件在物理磁盘、分区、卷或文件系统中的唯一性;
所述存储单元,用于保存所述文件识别标识和所述扫描结果;
第二处理单元,用于在所述待扫描文件的硬链接数大于1的情况下,在再次以所述待扫描文件作为扫描目标时,根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
标识确定单元,用于根据所述待扫描文件在存储器中的存储位置确定所述文件识别标识。
10.如权利要求9所述的装置,其特征在于,
所述标识确定单元包括:第一获取模块,用于获取所述待扫描文件在磁盘中的存储位置作为所述文件识别标识;或
所述标识确定单元包括:
第二获取模块,用于获取所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置,和
标识确定模块,用于根据所述待扫描文件所在磁盘的磁盘标识以及所述待扫描文件在磁盘中的存储位置确定所述文件识别标识。
11.如权利要求8-10中任一项所述的装置,其特征在于,所述第一处理单元包括:
第一触发模块,用于根据所述文件识别标识查询所述存储单元,并在确定所述存储单元中没有保存所述文件识别标识时,触发对扫描引擎的调用。
12.如权利要求11所述的装置,其特征在于,
所述第一处理单元还包括:
标识保存模块,用于将所述文件识别标识保存至所述存储单元,
结果保存模块,用于在所述第一处理单元获取所述待扫描文件的扫描结果之后,将所述扫描结果保存至所述存储单元;
所述第一触发模块还用于,在确定所述存储单元中没有保存所述文件识别标识时,触发所述标识保存模块。
13.如权利要求8-10中任一项所述的装置,其特征在于,所述第二处理单元包括:
第二触发模块,用于根据所述文件识别标识查询所述存储单元,并在确定所述存储单元中保存有所述文件识别标识时,触发结果获取模块;
结果获取模块,用于根据所述文件识别标识从所述存储单元查询并获取所述待扫描文件的扫描结果。
14.如权利要求8-10中任一项所述的装置,其特征在于,所述装置还包括:
第三处理单元,用于在所述待扫描文件的硬链接数等于1时,调用扫描引擎扫描所述待扫描文件以获取所述待扫描文件的扫描结果。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421430.0A CN104182519B (zh) | 2014-08-25 | 2014-08-25 | 一种文件扫描方法及装置 |
US14/777,155 US10049113B2 (en) | 2014-08-25 | 2014-08-29 | File scanning method and apparatus |
KR1020157037224A KR101738078B1 (ko) | 2014-08-25 | 2014-08-29 | 파일 스캐닝 방법 및 장치 |
JP2016544706A JP6154960B2 (ja) | 2014-08-25 | 2014-08-29 | ファイルをスキャンする方法及び装置 |
PCT/CN2014/085545 WO2016029441A1 (zh) | 2014-08-25 | 2014-08-29 | 一种文件扫描方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421430.0A CN104182519B (zh) | 2014-08-25 | 2014-08-25 | 一种文件扫描方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182519A CN104182519A (zh) | 2014-12-03 |
CN104182519B true CN104182519B (zh) | 2018-03-02 |
Family
ID=51963558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410421430.0A Active CN104182519B (zh) | 2014-08-25 | 2014-08-25 | 一种文件扫描方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10049113B2 (zh) |
JP (1) | JP6154960B2 (zh) |
KR (1) | KR101738078B1 (zh) |
CN (1) | CN104182519B (zh) |
WO (1) | WO2016029441A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104268288B (zh) * | 2014-10-21 | 2018-06-19 | 福州瑞芯微电子股份有限公司 | 一种基于ntfs的媒体库扫描方法及装置 |
CN106469049B (zh) * | 2015-08-19 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 一种文件扫描的方法及装置 |
CN105718800A (zh) * | 2016-01-18 | 2016-06-29 | 北京金山安全管理系统技术有限公司 | 一种快速病毒扫描查杀方法和装置 |
CN111400004B (zh) * | 2020-03-12 | 2023-10-31 | Oppo广东移动通信有限公司 | 视频扫描中断处理方法及装置、存储介质和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196932A (zh) * | 2008-01-04 | 2008-06-11 | 中国农业大学 | 一种建立图纸数据库的方法及装置 |
CN101370002A (zh) * | 2007-08-17 | 2009-02-18 | 万能 | 利用互联网发布与空间位置信息相关联的其它信息的方法 |
US8015221B1 (en) * | 2008-11-10 | 2011-09-06 | Symantec Corporation | Systems and methods for maintaining file-type information |
CN102609432A (zh) * | 2011-01-20 | 2012-07-25 | 富士施乐株式会社 | 文件管理装置和文件管理方法 |
CN103473240A (zh) * | 2012-06-08 | 2013-12-25 | Tcl集团股份有限公司 | 一种基于存储设备的文件扫描方法及装置 |
US8756249B1 (en) * | 2011-08-23 | 2014-06-17 | Emc Corporation | Method and apparatus for efficiently searching data in a storage system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389433B1 (en) * | 1999-07-16 | 2002-05-14 | Microsoft Corporation | Method and system for automatically merging files into a single instance store |
JP2003022206A (ja) * | 2001-07-06 | 2003-01-24 | Fujitsu Ltd | ファイル管理プログラムおよびファイル管理装置 |
US7444317B2 (en) * | 2002-06-28 | 2008-10-28 | Microsoft Corporation | System and method for managing file names for file system filter drivers |
US7260847B2 (en) | 2002-10-24 | 2007-08-21 | Symantec Corporation | Antivirus scanning in a hard-linked environment |
US7516422B2 (en) * | 2005-07-21 | 2009-04-07 | International Business Machines Corporation | Graphical display of hierarchical hardlinks to files in a file system |
US7401089B2 (en) * | 2005-08-17 | 2008-07-15 | Microsoft Corporation | Storage reports file system scanner |
JP4755244B2 (ja) * | 2006-03-02 | 2011-08-24 | 富士通株式会社 | 情報生成方法、情報生成プログラム及び情報生成装置 |
US8082227B2 (en) * | 2006-10-10 | 2011-12-20 | Emc Corporation | Session sensitive data backups and restores |
US7814077B2 (en) * | 2007-04-03 | 2010-10-12 | International Business Machines Corporation | Restoring a source file referenced by multiple file names to a restore file |
JP2009163367A (ja) | 2007-12-28 | 2009-07-23 | Nec Corp | ファイルシステム、プログラム及びファイルの管理方法 |
US9342528B2 (en) * | 2010-04-01 | 2016-05-17 | Avere Systems, Inc. | Method and apparatus for tiered storage |
JP2011203939A (ja) | 2010-03-25 | 2011-10-13 | Nec Corp | ファイル管理装置、ファイル管理方法、およびファイル管理プログラム |
US8943595B2 (en) * | 2011-07-15 | 2015-01-27 | International Business Machines Corporation | Granular virus detection |
US8972466B1 (en) * | 2011-12-15 | 2015-03-03 | Symantec Corporation | Efficient reverse name lookup in a file system |
CN102750463A (zh) | 2011-12-16 | 2012-10-24 | 北京安天电子设备有限公司 | 一种提高重复扫描文件速度的系统及方法 |
US9104675B1 (en) * | 2012-05-01 | 2015-08-11 | Emc Corporation | Inode to pathname support with a hard link database |
CN102982121B (zh) * | 2012-11-12 | 2015-11-11 | 北京奇虎科技有限公司 | 一种文件扫描方法、文件扫描装置及文件检测系统 |
US20140201177A1 (en) * | 2013-01-11 | 2014-07-17 | Red Hat, Inc. | Accessing a file system using a hard link mapped to a file handle |
JP2014182417A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | ファイルシステム検証方法、ファイルシステム検証プログラム、および情報処理装置 |
CN103473350B (zh) * | 2013-09-24 | 2016-10-05 | 北京奇虎科技有限公司 | 文件处理方法及设备 |
CN104536961A (zh) * | 2014-11-04 | 2015-04-22 | 深圳创维数字技术有限公司 | 一种本地媒体文件的扫描方法及系统 |
-
2014
- 2014-08-25 CN CN201410421430.0A patent/CN104182519B/zh active Active
- 2014-08-29 WO PCT/CN2014/085545 patent/WO2016029441A1/zh active Application Filing
- 2014-08-29 US US14/777,155 patent/US10049113B2/en active Active
- 2014-08-29 KR KR1020157037224A patent/KR101738078B1/ko active IP Right Grant
- 2014-08-29 JP JP2016544706A patent/JP6154960B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370002A (zh) * | 2007-08-17 | 2009-02-18 | 万能 | 利用互联网发布与空间位置信息相关联的其它信息的方法 |
CN101196932A (zh) * | 2008-01-04 | 2008-06-11 | 中国农业大学 | 一种建立图纸数据库的方法及装置 |
US8015221B1 (en) * | 2008-11-10 | 2011-09-06 | Symantec Corporation | Systems and methods for maintaining file-type information |
CN102609432A (zh) * | 2011-01-20 | 2012-07-25 | 富士施乐株式会社 | 文件管理装置和文件管理方法 |
US8756249B1 (en) * | 2011-08-23 | 2014-06-17 | Emc Corporation | Method and apparatus for efficiently searching data in a storage system |
CN103473240A (zh) * | 2012-06-08 | 2013-12-25 | Tcl集团股份有限公司 | 一种基于存储设备的文件扫描方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2017511515A (ja) | 2017-04-20 |
JP6154960B2 (ja) | 2017-06-28 |
US10049113B2 (en) | 2018-08-14 |
KR20160034858A (ko) | 2016-03-30 |
KR101738078B1 (ko) | 2017-05-19 |
WO2016029441A1 (zh) | 2016-03-03 |
CN104182519A (zh) | 2014-12-03 |
US20160203149A1 (en) | 2016-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182519B (zh) | 一种文件扫描方法及装置 | |
CN103559443B (zh) | 多核设备的病毒扫描方法和装置 | |
CN108063759B (zh) | Web漏洞扫描方法 | |
CN106251114B (zh) | 应用中实现审批的方法和装置 | |
CN105447035B (zh) | 数据扫描方法及装置 | |
CN110505228B (zh) | 基于边缘云架构的大数据处理方法、系统、介质及装置 | |
CN106161519B (zh) | 一种信息获取方法和装置 | |
CN106599725B (zh) | 图数据发布的随机化隐私保护方法 | |
CN108897876A (zh) | 一种数据接入方法及装置 | |
CN108874946A (zh) | 一种id管理方法及装置 | |
CN105956032A (zh) | 缓存数据同步方法、系统和装置 | |
CN106126629A (zh) | 一种基于直播行业的主数据管理方法及系统 | |
CN109669644A (zh) | 一种数据存储的方法和装置 | |
CN106033438A (zh) | 舆情数据存储方法和服务器 | |
CN105893466B (zh) | 一种应用于数据库的数据处理方法及系统 | |
CN105354341B (zh) | 文件的更新方法及装置 | |
JP2016045929A (ja) | ファイルをスキャンするための方法及び装置 | |
US11663184B2 (en) | Information processing method of grouping data, information processing system for grouping data, and non-transitory computer readable storage medium | |
CN103595827A (zh) | 一种cdn源站的ip地址识别方法及装置 | |
KR20180080450A (ko) | 클라우드 기반으로 악성코드를 탐지하는 장치 및 이를 이용한 방법 | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN100549977C (zh) | 芯片验证的预处理方法和预处理装置 | |
CN106161668A (zh) | 生成域名解析的方法、装置及服务器 | |
CN105955670A (zh) | 一种应用程序中校验重复列表数据的方法及系统 | |
CN104778406A (zh) | 一种基于文件指纹对恶意代码统一命名的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |