基于安卓系统的快速搜索文件方法与流程

文档序号:11134052阅读:911来源:国知局
基于安卓系统的快速搜索文件方法与制造工艺

本发明涉及计算机处理技术领域,具体是一种基于安卓系统的快速搜索文件方法。



背景技术:

目前,智能手机的操作系统主要是安卓和ios两种。在安卓系统下,要快速的搜索文档,主要通过查询安卓自带的媒体库来实现。媒体库是安卓系统用于管理多媒体文件(包括文档、图像、视频、音频等)的一个数据库。当安卓系统启动的时候,系统会自动扫描SD卡内的多媒体文件,并把获得的信息保存在媒体库中,其他程序如果想要访问多媒体文件的信息,就直接从该媒体库中查询,而不需直接去SD卡中获取。

从媒体库中查询文件信息十分快捷和方便,但如果在开机状态下往SD卡中增加一些多媒体文件,媒体库并不会马上进行更新,而是需要重启手机或者等上很久(通常要几个小时)后,媒体库才会进行更新。显然,这给用户带来很大的麻烦。

现有的解决办法主要有以下2种:

1)在应用程序中发送一个广播,让android系统扫描SD卡并更新多媒体数据库,但这需要事先知道新增加文件所在的路径,由于安卓系统版本非常多,要用一个统一的方法来得到这个路径通常是很困难的。

2)直接穷尽搜索SD卡的方法。这种方法能够搜索到新增加的文件,但这个过程会非常耗时(通常需要5分钟以上,取决于系统中文件的数量)。



技术实现要素:

针对上述现有技术中的不足之处,本发明旨在提供一种能及时更新、及时检索及搜索速度快的方法。

为解决上述技术问题,本发明的基于安卓系统的快速搜索文件方法,包括以下步骤:

S101:从媒体库中获取多媒体文件所在的路径集合信息且去除重复的路径信息,并存放于路径集合中;

S102:对集合中的每一个路径信息进行搜索,搜索出所有的多媒体文件信息,并对文件的最后修改时间按倒序顺序排列;

S103:对搜索到的多媒体文件进行分类显示。

S101包括以下步骤:

S201:查询媒体库,得到当前所有多媒体文件的文件信息;

S202:对每个文件信息进行处理,得到该文件所在的路径,并放入路径集合中;

S203:对路径集合去除重复的路径,得到新的路径集合。

步骤S201中的查询媒体库采用安卓系统自带的查询方法。

S202包括以下步骤:

A、定位出最后一位分隔符的具体位置;

B、根据字符串找出分隔符的起始位置和终点位置;

C、采用字符串分割法。

步骤S203采用安卓系统哈希映射的方法来去除重复的路径。

S102包括以下步骤:

A、指定要搜索多媒体文件的类型;

B、引入第三方的软件包commons-io,调用commons-io中的listFiles功能进行文件搜索;

C、对搜索出来的所有文件,按照文件的最后创建时间进行倒序排列。

步骤S102中的C包括以下步骤:

A、新建一个动态数组ArrayList;

B、搜索文件集合,把文件集合中的每一个元素放入动态数组ArrayList内;

C、定义文件排序规则;

D、调用安卓系统自带的排序方法。

S103包括以下步骤:

A、设置要分类的数目及设定分类数目的不同路径集合;

B、对动态数组ArrayList中的每一个文件,调用File类型中的相关方法;

C、根据文件路径中的文件后缀名,判断该文件的类型;

D、调用安卓系统里的列表显示功能。

在S102步骤A中多媒体文件的类型包括:doc、xls、pdf、dwg、ppt及jpg。

本发明的优点:避免了安卓系统的不同,文件路径也会不同的问题,解决了用户新增文件的途径千差万别的问题,对新系统中新增加的文件,能够快速有效的搜索文件并分类显示,不需要重启手机,也不需要长时间的等待,并且具有普适性,适用于所有版本的安卓系统。

附图说明

图1为本发明的流程示意图;

图2为本发明图1的S101具体流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

图1-图2所述,本发明的基于安卓系统的快速搜索文件方法,包括以下步骤:S101:从媒体库中获取多媒体文件所在的路径集合信息且去除重复的路径信息,并存放于路径集合中,S102:对集合中的每一个路径信息进行搜索,搜索出所有的多媒体文件信息,并对文件的最后修改时间按倒序顺序排列,S103:对搜索到的多媒体文件进行分类显示。查询媒体库,得到当前所有多媒体文件的文件信息,这些信息包括文件名、文件内容、文件大小等。媒体库的查询采用了安卓系统自带的查询方法,该方法有5个参数,分别是uri,projection,selection,selectionArgs,sortOrder。对这5个的设置如下:uri参数设置:uri指的是通用资源标识符,安卓里可用的每种资源,包括图像、视频、音频、文档资源等都可以用uri来表示。把uri的值设为MediaStore.Files.getContentUri(“external”),表示从外部存储卡中获取文件的索引。

projection参数设置:projection指的是要查询的文件的属性,包括文件标题、文件内容、文件大小等属性。

selection参数设置:selection是指查询的条件。设置为模糊匹配要查找的文件类型。

selectionArgs参数设置:selectionArgs是指对第三个参数selection的进一步的完善,设为空值。

sortOrder参数设置:sortOrder是指对查询的结果的排序规则。设置为按照文件的创建时间降序排列。

通过S101步骤,可以得到一个集合,该集合包含了媒体库中指定文件类型的所有文件的路径信息。每一个路径信息是一个字符串,记为S0。由于S0中包含了文件名信息,需要对S0进行处理,去除文件名,只保留文件夹的信息。具体步骤如下:由于安卓系统中路径的分隔符是“/”,所以,只需要定位出最后一个分隔符的具体位置P1,再根据字符串S0的起始位置P0,采用字符串分割的方法,得到P0和P1之间的字符串S1,S1即为需要的文件路径,并放入路径集合PS0中。

对于路径集合PS0,由于其中可能存在重复的路径,需要对PS0进行处理,即对其中重复的路径进行删除,只保留一个路径,以确保PS0中的所有路径都是不重复的。这里采用安卓系统中自带的哈希映射的方法来去除重复的路径,并得到新的路径集合PS1。

在步骤S102中对指定要搜索的多媒体文件进行类型集合区分,文件的类型是通过文件的后缀名来区分的。

进一步的引入第三方的软件包commons-io,调用其中的listFiles功能进行文件搜索,搜索的结果放入一个文件集合FS中,该集合中的每一个元素的类型为安卓系统里定义的File类型,通过File类型,就可以得到文件的名字、大小、路径、最后修改时间等信息。

再进一步的对搜索出来的所有文件,按照文件的最后创建时间进行倒序排列,具体操作步骤如下:

新建一个ArrayList类型的变量FL,这里ArrayList类型是安卓系统中定义的一种可以动态增加或删除元素的集合类型,并且可以很方便的实现排序功能。FL中的每个元素的类型是File类型。搜索文件集合FS,把FS中的每一个元素放入FL中。

进一步的定义排序规则,目的是按照文件的最后修改时间进行倒序排列。根据File类型中的lastModified属性,可以得到该文件的最后修改时间,因此,排序规则定义为对两个文件的lastModified属性相比较,如果文件1的lastModified属性值比文件2的lastModified属性值要大,则返回值为1,否则返回值为-1。

再进一步的调用安卓系统自带的排序方法,对FL中的元素进行排序,即可实现按照文件的最后创建时间进行倒序排列。

S103步骤包括:设置要分类的数目为N,则定义N个不同的路径集合,每个路径集合存放的是相同类型的文件的路径。

进一步的对FL中的每一个文件调用File类型的相关方法,即可得到该文件在安卓系统中的路径、文件名及文件大小。

再进一步的根据文件路径中的文件后缀名,即可判断该文件的类型,根据类型的不同,把相应的路径、文件名及文件大小放入不同的文件集合中。

再进一步对每个文件集合通过调用安卓系统里的列表显示功能显示功能,即可实现对该文件集合里进行列表显示。

具体使用时,当用户通过网络下载等渠道往手机里新增文件时,用户只需要知道新增的文件的类型,然后重新点击相应类型的图标,则系统会立即把新增的文件显示出来,无需重启手机或者等待较长时间。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1