发明内容
本发明实施例提供了一种扫描方法及相关设备,可以提高对存储数据的扫描速度。
第一方面,本发明实施例提供了一种扫描方法,包括:
根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与所述预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表;
根据当前的资源类型优先级和所述预设资源类型列表遍历所述第一子列表中的元素直到文件,以将所述文件分类到对应的资源类型的文件列表中,再遍历所述第二子列表,将其所属文件分类到对应的所述文件列表中;
根据当前的资源类型优先级将所述文件列表中的元素存储至特定数据库中。
可选地,在根据所述预设资源类型列表得到所述第一子列表和所述第二子列表之前,所述方法还包括:
根据所述存储设备的识别标记判断所述存储设备是否为首次扫描;
非首次扫描所述存储设备时,根据所述存储设备的识别标记从所述特定数据库中获取相应的历史数据,所述历史数据具有其在来源设备的存储路径;
根据所述预设资源类型列表对所述历史数据进行分类,得到与所述预设资源类型列表中的资源类型对应的子历史数据列表;
根据当前的资源类型优先级遍历所述子历史数据列表,并根据所述子历史数据列表中的元素的存储路径确定所述存储设备是否存在所述元素;
若所述存储设备不存在所述元素,删除所述元素在所述特定数据库中对应的历史数据;若所述存储设备存在所述元素,保留所述元素在所述特定数据库中对应的历史数据。
可选地,所述根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与所述预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表,包括:
根据所述预设资源类型列表,对所述一级子目录列表下的元素进行关键字匹配和分类,得到所述第一子列表和所述第二子列表。
可选地,所述根据当前的资源类型优先级和所述预设资源类型列表遍历所述第一子列表中的元素直到文件,以将所述文件分类到对应的资源类型的文件列表中,再遍历所述第二子列表,将其所属文件分类到对应的所述文件列表中,包括:
根据当前的资源类型优先级将所述第一子列表进行合并得到第三子列表,并将所述第二子列表合并在所述第三子列表之后,得到第四子列表;
按序遍历所述第四子列表中的元素直到文件,并进行文件解析以将所述文件分类到对应的所述文件列表中。
可选地,所述按序遍历所述第四子列表中的元素直到文件,并进行文件解析以将所述文件分类到对应的所述文件列表中,包括:
元素为文件时,解析文件信息以将元素分类到对应的所述文件列表中;
元素为目录时,向下递归遍历所述目录直到遍历到文件,再解析文件信息以将文件分类到对应的所述文件列表中。
可选地,所述方法还包括:
确定前台运行的应用,将所述应用对应的资源类型确定为当前的资源类型优先级中具有最高优先级的资源类型。
可选地,所述资源类型包括音乐、视频、图片三者中的一种以上。
可选地,所述根据当前的资源类型优先级将所述文件列表中的元素存储至特定数据库中,包括:
根据当前的资源类型优先级将所述文件列表中的元素存入待写缓冲队列中;
采用定量插入法或定时批量插入法将所述待写缓冲队列中的元素写入所述特定数据库。
第二方面,本发明实施例提供了一种扫描装置,包括:
第一处理模块,用于根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与所述预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表;
第二处理模块,用于根据当前的资源类型优先级和所述预设资源类型列表遍历所述第一子列表中的元素直到文件,以将所述文件分类到对应的资源类型的文件列表中,再遍历所述第二子列表,将其所属文件分类到对应的所述文件列表中;
存储模块,用于根据当前的资源类型优先级将所述文件列表中的元素存储至特定数据库中。
可选地,所述装置还包括:
判断模块,用于根据所述存储设备的识别标记判断所述存储设备是否为首次扫描;
获取模块,用于非首次扫描所述存储设备时,根据所述存储设备的识别标记从所述特定数据库中获取相应的历史数据,所述历史数据具有其在来源设备的存储路径;
分类模块,用于根据所述预设资源类型列表对所述历史数据进行分类,得到与所述预设资源类型列表中的资源类型对应的子历史数据列表;
第三处理模块,用于根据当前的资源类型优先级遍历所述子历史数据列表,并根据所述子历史数据列表中的元素的存储路径确定所述存储设备是否存在所述元素;若所述存储设备不存在所述元素,删除所述元素在所述特定数据库中对应的历史数据;若所述存储设备存在所述元素,保留所述元素在所述特定数据库中对应的历史数据。
可选地,所述第一处理模块包括:
第一子模块,用于根据所述预设资源类型列表,对所述一级子目录列表下的元素进行关键字匹配和分类,得到所述第一子列表和所述第二子列表。
可选地,所述第二处理模块包括:
第二子模块,用于根据当前的资源类型优先级将所述第一子列表进行合并得到第三子列表,并将所述第二子列表合并在所述第三子列表之后,得到第四子列表;
第三子模块,用于按序遍历所述第四子列表中的元素直到文件,并进行文件解析以将所述文件分类到对应的所述文件列表中。
可选地,所述装置还包括:
确定模块,用于确定前台运行的应用,将所述应用对应的资源类型确定为当前的资源类型优先级中具有最高优先级的资源类型。
可选地,所述资源类型包括音乐、视频、图片三者中的一种以上。
可选地,所述存储模块包括:
第四子模块,用于根据当前的资源类型优先级将所述文件列表中的元素存入待写缓冲队列中;
第五子模块,用于采用定量插入法或定时批量插入法将所述待写缓冲队列中的元素写入所述特定数据库。
第三方面,本发明实施例提供了一种扫描设备,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如第一方面所述的扫描方法。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如第一方面所述的扫描方法。
本发明实施例中,根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表;再根据当前的资源类型优先级和预设资源类型列表遍历第一子列表中的元素直到文件,以将文件分类到对应的资源类型的文件列表中,再遍历第二子列表,将其所属文件分类到对应的文件列表中;最后根据当前的资源类型优先级将文件列表中的元素存储至特定数据库中。通过预设资源类型列表和当前的资源类型优先级,可以快速完成对符合预设资源类型列表的数据的扫描,有效提高上述元素的扫描速度,快速将符合优先级要求的元素信息展示给用户,提高用户体验。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本发明所描述的实施例可以与其它实施例相结合。
本文中,扫描方法是对存储设备中的存储数据进行扫描,将符合预设资源类型列表的数据存入特定数据库中,以供处理装置进行处理。可以利用扫描装置来执行上述扫描方法,扫描装置可以是车机、电脑、手机、平板电脑等设备,而存储设备可以是外部存储设备或内部存储设备(即装置自身的存储设备),外部存储设备如U盘、硬盘等,内部存储设备如SD卡、TF卡等。特别地,处理装置也可以是车机、电脑、手机、平板电脑等设备,容易想到的是,处理装置可以同时作为扫描装置,也可以是处理装置和扫描装置采用不同的设备来实现,例如扫描装置采用车机来实现,处理装置采用笔记本电脑来实现。
进一步地,上述的预设资源类型列表包括1个以上的资源类型,该列表用于限定优先扫描的资源类型,一般地,可以将处理装置的处理对象对应的资源类型作为该列表的成员。其中,资源类型包括多媒体资源类型或非多媒体资源类型,多媒体资源类型包括音乐文件、视频文件、图片文件三者中的一种以上,非多媒体资源类型包括exe文件(可执行文件)、ppt文件、pdf文件、doc格式文件、docx格式文件、xls格式文件、xlsx格式文件等。当预设资源类型列表包括多媒体资源类型时,扫描存储设备时,优先对多媒体资源类型的数据进行扫描。并写入特定数据库中。同理,当预设资源类型列表包括的是非多媒体资源类型时,对存储设备进行扫描时,优先对非多媒体资源类型的数据进行扫描。
现有技术中,处理装置对存储设备的特定数据进行扫描时,所需扫描时间过长,导致无法快速将特定数据传输给处理装置进行处理,用户体验低下;例如,处理装置和扫描装置均为车机,存储设备为U盘时,车机系统需要获取U盘的多媒体数据(音乐文件、视频文件、图片文件等)以进行音乐、视频播放,或者查看图片,U盘的数据过多,导致所需的扫描时间过长,用户的体验度十分低下。因此,本申请提供一种扫描方法,可以有效提高对存储设备中符合预设资源类型列表的数据的扫描速度,有效提高用户体验。
请参见图1a、图1b,是本发明实施例提供的一种扫描方法的场景示意图,以处理装置和扫描装置为同一个装置的情形进行说明,假设扫描装置为车机101,而存储设备为U盘102。一般地,U盘102与车机101连接后并完成扫描后,U盘102中符合预设资源类型列表的数据将被写入车机101中的特定数据库中,特定数据库中的数据带有其在来源设备中的存储路径以及来源设备的识别标记。假设预设资源类型列表为音乐文件、视频文件和图片文件,此时,资源类型优先级即指音乐文件、视频文件和图片文件三者之间的优先级顺序。当U盘102断开与车机101的连接时,之前写入的数据的已删除标志位均被置为true,表示该数据可以被删除,后续根据这个标志位进行数据库的数据清理操作,当标志位为false时,该数据将被删除。
图1a和图1b中,当U盘102与车机101建立连接后,首先需要判断是否是首次扫描该U盘102,可以根据U盘的唯一识别标记查找车机101的数据库,当可以在数据库中找到对应的数据记录时,表示U盘102非首次扫描,则可以根据U盘102的识别标记从车机101的特定数据库中读取出属于该U盘的历史数据(此时,这部分数据的已删除标志位均为true),再将这些历史数据分别保存到音乐历史数据队列、视频历史数据队列、图片历史数据队列中。
接着,确定车机101当前在前台运行的应用对应的资源类型,将该资源类型确定为资源类型优先级中的最高级,例如,此时车机101在前台运行的是音乐播放应用,则音乐文件为最高优先级的资源类型,而视频文件和图片文件的优先级可以自由设置,当前的资源类型优先级可以是音乐文件、视频文件、图片文件,或者是音乐文件、图片文件、视频文件。也可以预先设置视频文件和图片文件(最高优先级为音乐文件)、音乐文件和图片文件(最高优先级为视频文件)、音乐文件和视频文件(最高优先级为图片文件)的固定顺序,例如,按照视频文件和图片文件、音乐文件和图片文件、音乐文件和视频文件的顺序,则当音乐文件为最高优先级时,接下来的优先级顺序为视频文件、图片文件,即当前的资源类型优先级为音乐文件、视频文件和图片文件。根据当前的资源类型优先级按序遍历各个历史数据队列中的元素,每次读取队列中的元素进行判断前,都需要确定当前的资源类型优先级,根据最新的资源类型优先级进行队列遍历。每次获取到队列中的一个元素时,根据元素的存储路径去U盘102进行查找,确定在存储路径下是否有对应的文件,当路径下有对应的文件时,表明U盘102存在该元素,可以将该元素保留在数据库中,此时将该元素的已删除标志位从true置为false;相反,当在存储路径下无法找到对应的文件时,不改变该元素的已删除标志位,标志位为true,该元素将被删除。当对三个历史数据队列全都遍历结束后,根据标志位对所有历史数据进行清理,保留标志位为false的数据,清除标志位为true的数据;上述过程可以保留数据库中与非首次扫描的U盘相同的数据记录,由于后续无需将这部分相同的数据写入数据库中,因此可以有效减少扫描U盘所需的时间,提高扫描速度。之后进入对U盘102的扫描过程,该过程与首次扫描的U盘的处理过程(参考下文)相同。
而当根据U盘102的唯一识别标记无法从数据库中找到对应的数据记录时,表示U盘102为首次扫描的设备。对于首次扫描的U盘102,先扫描U盘102的一级子目录(该目录中可以包括目录和文件),将其存放在一个临时列表中。再根据预设资源类型列表遍历该临时列表,通过关键字匹配(目录名、文件名或后缀名进行匹配),将该临时列表拆分为四个子列表:音乐子列表、视频子列表、图片子列表、其他子列表(其他子列表存放匹配失败的目录或文件,这些目录或文件仍然有可能是音乐文件、视频文件或图片文件)。按照上述方法确定当前的资源类型优先级,根据当前的资源类型优先级将四个子列表按照顺序合并成一个总列表,其中,其他子列表放在总列表的最后。按照总列表的顺序遍历所有元素,当元素是文件时,解析文件相关信息,以确定该文件为音乐文件、视频文件或图片文件。如果元素是目录,则继续向下递归遍历直到遍历到文件,继续解析文件进行文件分类,遍历总列表的所有元素后,可以得到对应音乐文件、视频文件、图片文件的三个文件列表,分别为音乐列表、视频列表和图片列表。最后,根据当前的资源类型优先级将文件列表中的元素添加到待写缓冲队列中,再将待写缓冲队列中的元素写入特定数据中。其中,每次在从三个文件列表取文件添加到待写缓冲队列之前,都需要按照上述方法确定最新的资源类型优先级,以确保写入数据库的数据与当前前台运行的应用对应,以迅速将对应前台应用的数据展示给用户,提升用户的体验。
参考图1a和图1b,利用本实施例的扫描方法,通过预设资源类型列表和实时确定当前的资源类型优先级,可以快速完成对符合预设资源类型列表的数据的扫描,提高扫描速度,提升用户体验。以U盘为例,车机系统可以快速完成对多媒体数据的扫描,并且优先扫描对应当前前台运行的应用的数据,优先满足前台运行的应用的数据需求,有效提升用户的满意度。
请参见图2,是本发明实施例提供的一种扫描方法的流程示意图;扫描方法包括:
201、根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表;
具体地,预设资源类型列表限定了优先扫描的资源类型,根据预设资源类型列表对存储设备的一级子目录列表下的元素进行资源类型匹配,以进行分类,对于与列表中的资源类型匹配的元素,将其分类到该资源类型对应的第一子列表,可以得到若干第一子列表,第一子列表的个数与列表中的成员的个数相同。而对于无法匹配的元素,将其分类到第二子列表中。以预设资源类型列表包括音乐文件、视频文件和图片文件为例,则将得到3个第一子列表和1个第二子列表。
202、根据当前的资源类型优先级和预设资源类型列表遍历第一子列表中的元素直到文件,以将文件分类到对应的资源类型的文件列表中,再遍历第二子列表,将其所属文件分类到对应的文件列表中;
具体地,先根据当前的资源类型优先级和预设资源类型列表遍历上述第一子列表的元素直到遍历到文件,以将文件分类到对应的资源类型的文件列表中,再根据预设资源类型列表遍历第二子列表中的元素直到文件,以将第二子列表所属的文件分类到对应的文件列表中。以预设资源类型列表包括音乐文件、视频文件和图片文件为例,则可以得到三个文件列表,分别是音乐列表、视频列表和图片列表。
203、根据当前的资源类型优先级将文件列表中的元素存储至特定数据库中。
具体地,每次在将元素写入特定数据库之前,需要重新确定当前的资源类型优先级,根据最新的资源类型优先级确定从哪个文件列表中获取元素写入特定数据库中。假设最新的资源类型优先级为图片文件、音乐文件和视频文件,则先将图片列表中的元素写入数据库,再依次将音乐列表和视频列表中的元素写入数据库中。
本发明实施例中,利用图2的方法,通过预设资源类型列表和当前的资源类型优先级,可以快速完成对符合预设资源类型列表的数据的扫描,有效提高上述元素的扫描速度,快速将符合优先级要求的元素信息展示给用户,提高用户体验。
进一步地,本实施例中,扫描方法还包括:
确定前台运行的应用,将应用对应的资源类型确定为当前的资源类型优先级中具有最高优先级的资源类型。
具体地,资源类型优先级是指预设资源类型列表中的成员的优先级顺序,按照上述方法确定了最高优先级的资源类型,而剩余的优先级顺序,可以按照预设顺序进行确定,以音乐文件、视频文件、图片文件为例,预设顺序可以是音乐文件、视频文件,音乐文件、图片文件,视频文件、图片文件,也可以是视频文件、音乐文件,图片文件、音乐文件,图片文件、视频文件,可以根据需求进行具体设定。将前台运行的应用对应的资源类型确定为当前的资源类型优先级中的最高优先级,可以确保将对应于前台运行的应用的资源类型的数据尽快写入特定数据库中,以及时将其展示给用户,提高用户体验。
而当无前台运行的应用,或者前台应用对应的资源类型不在预设资源类型列表中时,则当前的资源类型优先级为预设资源类型优先级,预设资源类型优先级可以是音乐文件、视频文件、图片文件,或者音乐文件、图片文件、视频文件等,不再枚举,可以根据实际需要进行设置。
进一步地,为了进一步提高对存储设备的扫描速度,特别是对非首次扫描的存储设备的扫描速度,参考图3,图3是本发明实施例提供的一种扫描方法的流程示意图;本实施例的扫描方法中,在根据预设资源类型列表得到第一子列表和第二子列表之前,即在步骤201之前,还包括:
301、根据存储设备的识别标记判断存储设备是否为首次扫描;
具体地,识别标记是存储设备的唯一识别信息,可以是由数字和/或字母组成的设备的唯一标识码。在对存储设备进行扫描后,该存储设备符合要求的数据将被存储在特定数据库中,其中,数据库中的每一条数据记录,都带有数据在来源设备中的存储路径以及来源设备的识别标记,另外,每一个数据记录都具有一个已删除标志位,该标志位为true时,表示该数据记录可以被删除;该标志位为false,表示该数据记录不需要被删除。因此,可以根据存储设备的识别标记查找特定数据库中的数据记录,以确定该存储设备是否为首次扫描的设备。特别地,特定数据库中也可以存储扫描记录,其中,记录曾经扫描过的存储设备,以扫描时间、存储设备的识别标记的对应关系进行存储,则根据存储设备的识别标记查找扫描记录,即可以判断存储设备是否为首次扫描。
302、非首次扫描存储设备时,根据存储设备的识别标记从特定数据库中获取相应的历史数据,历史数据具有其在来源设备的存储路径;
具体地,当根据识别标记无法从特定数据库中找到对应的记录时,表示该设备是首次扫描的存储设备,则根据上述步骤201至步骤203进行扫描即可。而当根据识别标记可以从特定数据库中找到对应的记录时,表明该存储设备是非首次扫描的存储设备,此时,根据该存储设备的识别标记从特定数据库中获取相应的历史数据,每一个历史数据都具有其在来源设备中的存储路径。
303、根据预设资源类型列表对历史数据进行分类,得到与预设资源类型列表中的资源类型对应的子历史数据列表;
具体地,再次对非首次扫描的存储设备进行扫描时,先根据预设资源类型列表对获取的历史数据进行分类,可以得到对应预设资源类型列表中各个资源类型的子历史数据列表,以预设资源类型列表包括音乐文件、视频文件和图片文件为例,可以得到对应音乐文件、视频文件、图片文件的三个子历史数据列表。
304、根据当前的资源类型优先级遍历子历史数据列表,并根据子历史数据列表中的元素的存储路径确定存储设备是否存在元素;
具体地,先根据上述方法确定当前时刻的资源类型优先级顺序,再根据资源类型优先级遍历各个子历史数据列表中的元素,每次遍历一个元素之前,均需要判断当前最新的资源类型优先级顺序,才能确定先遍历哪一个子历史数据列表。对于每一个元素,根据元素在来源设备中的存储路径确定存储设备是否存在该元素。当根据存储路径在该存储设备中可以找到文件时,可以确定存储设备存在该元素;反之,该存储设备不存在该元素。
305、若存储设备不存在元素,删除元素在特定数据库中对应的历史数据;若存储设备存在元素,保留元素在特定数据库中对应的历史数据。
具体地,按照步骤304遍历所有子历史数据列表的元素后,可以确定数据库中哪些数据记录与非首次扫描的存储设备相同,将与存储设备相同的数据记录的已删除标志位置为false,以保留该数据记录。而对于与存储设备不同的数据记录,将数据记录的已删除标志位置为true,以删除该数据记录。
可见,利用图3的方法,可以保留特定数据库中与非首次扫描的存储设备相同的数据,无需重新将这部分数据写入数据库中,可以节省扫描时间,提升对非首次扫描的存储设备的扫描速度。
进一步地,步骤201包括:
根据预设资源类型列表,对一级子目录列表下的元素进行关键字匹配和分类,得到第一子列表和第二子列表。
具体地,利用关键字匹配的方法,对于一级子目录列表中的元素进行类型匹配和分类。预设资源类型列表可以是一个数组,用于确定一级子目录列表(包括目录和文件)中哪些是需要优先扫描(即关注的重点)的资源类型,判断方式是目录名、文件名或者后缀名中是否包含数组中定义的关键字,数组分三类,音乐、视频、图片,比如:
对于音乐,可以定义:
public static String[]audioHighLevelScanfolderNames={
"music","song","voice","sound","audio","mp3","ring","cd","aac","flac","ape","wma","awb","ogg","wav","m4a","歌","音"}。
对于视频,可以定义:
public static String[]videoHighLevelScanfolderNames={
"video","mp4","mov","avi","rmvb","wmv","wkv","flv","m4v","rm","3gp","asf","web m","视","影","photo","dcim"}。
对于图片,可以定义:
public static String[]imageHighLevelScanfolderNames={
"jpg","jpeg","bmp","png","gif","图","照","image","photo","dcim","screencap"}。
根据关键字匹配方法,可以对一级子目录列表下的元素(目录或者文件)进行分类,对于匹配到关键字的元素,将其分类到对应的资源类型的第一子列表中。而对于无法匹配到关键词的元素,将其分类到第二子列表中。
进一步地,步骤202包括:
A、根据当前的资源类型优先级将第一子列表进行合并得到第三子列表,并将第二子列表合并在第三子列表之后,得到第四子列表;
具体地,为了方便遍历第一子列表和第二子列表,将第一子列表和第二子列表合并成一个第四子列表。其中,先确定当前的资源类型优先级,再根据最新的资源类型优先级的顺序将第一子列表合并成第三子列表,最后将第二子列表合并在第三子列表之后,得到第四子列表。
B、按序遍历第四子列表中的元素直到文件,并进行文件解析以将文件分类到对应的文件列表中。
具体地,按照第四子列表的顺序遍历元素直到文件,并对文件进行解析,以将文件分类到对应的资源类型的文件列表中。其中,当遍历到的元素为文件时,解析文件信息以将元素分类到对应的文件列表中。而当元素为目录时,向下递归遍历目录直到遍历到文件,再解析文件信息以将文件分类到对应的文件列表中。
进一步地,步骤203包括:
C、根据当前的资源类型优先级将文件列表中的元素存入待写缓冲队列中;
具体地,本实施例中,为了提高将元素写入特定数据库中的速度,先根据当前最新的资源类型优先级将上述文件列表中的元素写入待写缓冲队列中。
D、采用定量插入法或定时批量插入法将待写缓冲队列中的元素写入特定数据库。
具体地,通过定量插入法或定时批量插入法将待写缓冲队列中的元素写入特定数据库中,例如每隔200个元素,就进行一次写入操作,或者每隔5s。就将待写缓冲队列中的元素写入特定数据库中。以资源类型包括音乐文件、视频文件和图片文件为例,当不存在多媒体应用处于系统前台运行状态时,按照音乐、视频、图片的预设优先级顺序对文件列表进行文件扫描,添加至数据库,即先将音乐列表中的元素加入待写缓冲队列中。当存在多媒体应用处于前台运行状态时,则优先扫描适用于该应用的多媒体文件类型。比如用户打开了视频播放器,会通过广播等方式通知到扫描服务当前视频播放器处于前台,此时,则优先扫描视频文件。另外,如果在扫描视频文件的过程中,用户退出视频应用,进入了音乐应用,扫描服务也会收到通知,并实时改变扫描优先级,优先扫描音乐文件。
利用步骤C和D,可以实时根据当前的资源类型优先级,将对应前台运行的应用的资源类型的数据迅速展示给用户,有效提升用户的体验度。
基于上述扫描方法实施例的描述,本发明实施例还公开了一种扫描装置,参考图4,图4是本发明实施例提供的一种扫描装置的结构示意图,扫描装置包括:
第一处理模块401,用于根据预设资源类型列表,对存储设备的一级子目录列表下的元素进行资源类型匹配和分类,得到与预设资源类型列表中的资源类型对应的第一子列表,以及用于存放无法匹配的元素的第二子列表;
第二处理模块402,用于根据当前的资源类型优先级和预设资源类型列表遍历第一子列表中的元素直到文件,以将文件分类到对应的资源类型的文件列表中,再遍历第二子列表,将其所属文件分类到对应的文件列表中;
存储模块403,用于根据当前的资源类型优先级将文件列表中的元素存储至特定数据库中。
可见,通过预设资源类型列表和当前的资源类型优先级,可以快速完成对符合预设资源类型列表的数据的扫描,有效提高上述元素的扫描速度,快速将符合优先级要求的元素信息展示给用户,提高用户体验。
进一步地,装置还包括:
确定模块,用于确定前台运行的应用,将应用对应的资源类型确定为当前的资源类型优先级中具有最高优先级的资源类型。
进一步地,参考图5,图5是本发明实施例提供的一种扫描装置的结构示意图;装置还包括:
判断模块501,用于根据存储设备的识别标记判断存储设备是否为首次扫描;
获取模块502,用于非首次扫描存储设备时,根据存储设备的识别标记从特定数据库中获取相应的历史数据,历史数据具有其在来源设备的存储路径;
分类模块503,用于根据预设资源类型列表对历史数据进行分类,得到与预设资源类型列表中的资源类型对应的子历史数据列表;
第三处理模块504,用于根据当前的资源类型优先级遍历子历史数据列表,并根据子历史数据列表中的元素的存储路径确定存储设备是否存在元素;若存储设备不存在元素,删除元素在特定数据库中对应的历史数据;若存储设备存在元素,保留元素在特定数据库中对应的历史数据。
进一步地,第一处理模块包括:
第一子模块,用于根据预设资源类型列表,对一级子目录列表下的元素进行关键字匹配和分类,得到第一子列表和第二子列表。
进一步地,第二处理模块包括:
第二子模块,用于根据当前的资源类型优先级将第一子列表进行合并得到第三子列表,并将第二子列表合并在第三子列表之后,得到第四子列表;
第三子模块,用于按序遍历第四子列表中的元素直到文件,并进行文件解析以将文件分类到对应的文件列表中。具体地,元素为文件时,解析文件信息以将元素分类到对应的文件列表中;元素为目录时,向下递归遍历目录直到遍历到文件,再解析文件信息以将文件分类到对应的文件列表中。
进一步地,存储模块包括:
第四子模块,用于根据当前的资源类型优先级将文件列表中的元素存入待写缓冲队列中;
第五子模块,用于采用定量插入法或定时批量插入法将待写缓冲队列中的元素写入特定数据库。
值得指出的是,其中,扫描装置的具体功能实现方式可以参见上述扫描方法的描述,这里不再进行赘述。所述的扫描装置中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者多个单元(或模块)的功能由一个单元(或模块)实现。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种扫描设备。
请参见图6,是本发明实施例提供的一种扫描设备的结构示意图。如图6所示,上述的扫描装置可以应用于所述扫描设备600,所述扫描设备600可以包括:处理器601,网络接口604和存储器605,此外,所述扫描设备600还可以包括:用户接口603,和至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的扫描设备600中,网络接口604可提供网络通讯功能;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以实现上述的扫描方法的方法步骤。
应当理解,本发明实施例中所描述的扫描设备600可执行前文所述扫描方法,也可执行前文所述扫描装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的扫描装置所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文所述扫描方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。