CN104636464A - 访问文件的方法和装置 - Google Patents
访问文件的方法和装置 Download PDFInfo
- Publication number
- CN104636464A CN104636464A CN201510068420.8A CN201510068420A CN104636464A CN 104636464 A CN104636464 A CN 104636464A CN 201510068420 A CN201510068420 A CN 201510068420A CN 104636464 A CN104636464 A CN 104636464A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- file index
- memory cache
- module
- 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.)
- Granted
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种访问文件的方法和装置。所述方法包括以下步骤:获取对文件的操作请求;判断是否存在文件索引,若存在,则根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件;若不存在文件索引,则根据所述操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。上述访问文件的方法和装置,将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。
Description
技术领域
本发明涉及数据扫描领域,特别是涉及一种访问文件的方法和装置。
背景技术
随着计算机技术的发展,产生了大量的文件数据,为了保存文件数据,将文件数据存储在各种存储设备上,如SD卡(Secure Digital Memory Card,安全数码卡)、DVD(Digital Versatile Disc,数字多功能光盘)等。
以SD卡为例,随着数据量的增大,存储在SD上的文件数量越来越多。为了获取SD卡上某种类型的文件或超过指定大小的文件时需要通过对SD卡进行全盘扫描获取。由于Android和Linux中都无法依靠系统接口直接获取到某种类型文件或超过指定大小的文件,往往采用的是对SD卡进行遍历扫描的方式获取。由于每次SD卡上的文件是可以被用户或者任何应用进行操作的,所以应用每次都需要对SD卡进行重新扫描。传统的文件访问方式受SD卡读写速度的影响很大,全盘扫描比较慢。
发明内容
基于此,有必要针对传统访问文件时全盘扫描慢的问题,提供一种能提高扫描速度的访问文件的方法和装置。
一种访问文件的方法,包括以下步骤:
获取对文件的操作请求;
判断是否存在文件索引,若存在,则根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件;若不存在文件索引,则根据所述操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。一种访问文件的装置,包括:
操作请求获取模块,用于获取对文件的操作请求;
操作请求获取模块,用于获取对文件的操作请求;
判断模块,用于判断是否存在文件索引;
检索模块,用于当判断出存在文件索引时,根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件;
索引建立模块,用于当判断出不存在文件索引时,根据所述操作请求建立文件索引;
所述检索模块还用于在建立了文件索引后,将将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
上述访问文件的方法和装置,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。
附图说明
图1为一个实施例中访问文件的方法的流程图;
图2为另一个实施例中访问文件的方法的流程图;
图3为另一个实施例中访问文件的方法的流程图;
图4为一个实施例中访问文件的装置的结构框图;
图5为另一个实施例中访问文件的装置的结构框图;
图6为另一个实施例中访问文件的装置的结构框图;
图7为能实现本发明实施例的一个计算机系统的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了解决对文件系统、存储空间或存储设备等中的文件进行全盘扫描速度慢的问题,本发明通过对文件系统、存储空间或存储设备等上的文件建立文件索引,并将文件索引预加载到内存缓存中,建立了一个由内存缓存、文件索引和文件系统、存储空间或存储设备等上的文件组成的缓存索引机制,将对文件系统、存储空间或存储设备等上的文件的操作变成了对内存缓存和文件索引的操作,提高了对文件系统、存储空间或存储设备等的扫描速度和访问速度。
图1为一个实施例中访问文件的方法的流程图。如图1所示,该访问文件的方法,包括以下步骤:
步骤102,获取对文件的操作请求。
具体的,操作请求可为检索请求、修改请求或删除请求。检索请求可为对某个文件进行查询。修改请求可为单个文件的修改请求或批量文件的修改请求。删除请求可为对单个文件的删除请求或批量文件的删除请求。
步骤104,判断是否存在文件索引,若是,执行步骤106,若否,执行步骤108。
本实施例中,扫描文件,将文件信息以XML(Extensible Markup Language,可扩展标记语言)节点形式或文件节点形式或数据库形式保存形成文件索引。
其中,将文件信息以XML节点形式保存在XML文件中,且每个文件的父目录作为该文件在XML文件中的节点的父节点,扫描完后,将该XML文件作为文件索引。通过全盘扫描,文件形成一颗XML树,XML文件就是所有文件的索引。
因文件系统、存储空间或存储设备上的所有文件(包括文件和文件夹)从根节点开始一层层的往下看为一棵树的形式,例如:
XML的子节点和父节点也是树型结构,所以可以将XML的树型结构和文件系统中文件的树型结构对应起来,将文件信息以XML节点形式保存在XML文件中,该XML文件即为文件索引。
同理,也可将文件信息以文件节点形式或数据库形式保存形成文件索引,其中,文件树型的各节点与文件索引中的各节点对应建立文件索引。
文件索引中每个节点包括文件名、是否为目录、最后修改时间、大小、文件类型、其他信息。其中,是否为目录是指是否为文件夹,可由Android、Linux系统或Java等已有的接口直接调用判断。文件类型可包括APK、图片、音频、视频、文本、文档、压缩包等。图片可包括PNG(Portable Network Graphic Format,可移植网格图形格式)、JPG(即JPEG)、JPEG(Joint Photographic ExpertsGROUP)、GIF(Graphics Interchange Format,图像互换格式)等。音频可包括MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、WMA(Windows Media Audio)、MID(Musical Instrument Digital Interface)等。视频可包括MP4(Moving Picture Experts Group 4)、3GP格式等。文档可包括doc(document)格式、ppt(power point)格式、xls(eXtensible Style sheetLanguage,可扩展样式表语言)格式、PDF(Portable Document Format,可移植文档格式)格式等。压缩包可包括zip格式、7z格式、gz格式等。该其他信息可文件路径、文件自身的属性信息等。文件索引中每个节点的结构定义如表1所示。
表1
文件名 | 是否为目录 | 最后修改时间 | 所属应用 | 大小 | 文件类型 | 其他信息 |
XML建立文件索引描述举例如下:
上述描述中,name为文件名;isDir表示是否为目录,true表示为目录;lastModifyTime为最后修改时间;belongTo表示所属应用;size表示大小;fileType表示文件类型。
步骤106,根据该操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
步骤108,根据该操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
具体的,在内存缓存中采用Java中的TreeMap或B树方式等进行检索,其检索时的时间复杂度为对树型结构进行检索的时间复杂度,即为log2(n)。TreeMap采用自然顺序或自定义顺序进行遍历搜索。B树即为二叉搜索树,从根节点开始若查询的关键字与节点的关键字相等,则命中,否则,若查询关键字比节点关键字小,则进入左子节点,若查询关键字比节点关键字大,则进入右子节点,若左子节点或右子节点的指针为空,则找不到相应的关键字。
上述访问文件的方法,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。
图2为另一个实施例中访问文件的方法的流程图。如图2所示,该访问文件的方法包括:
步骤202,扫描文件,并将文件信息建立文件索引。
具体的,扫描文件,将文件信息以XML节点形式或文件节点形式或数据库形式保存形成文件索引。其中,将文件信息以XML节点形式保存在XML文件中,且每个文件的父目录作为该文件在XML文件中的节点的父节点,扫描完后,将该XML文件作为文件索引。通过全盘扫描,文件形成一颗XML树,XML文件就是所有文件的索引。
此外,在启动应用后或检索文件之前,可将文件索引预加载到内存中,在内存中形成文件索引缓存。具体的,XML文件保存在应用的数据目录下,可直接加载XML文件到内存中。
步骤204,获取对文件的操作请求。
步骤206,判断是否存在文件索引,若存在,执行步骤208,若不存在,执行步骤210。
步骤208,根据该操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
步骤210,根据该操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
具体的,在内存缓存中采用Java中的TreeMap或B树方式等进行检索,其检索时的时间复杂度为对树型结构进行检索的时间复杂度,即为log2(n)。TreeMap采用自然顺序或自定义顺序进行遍历搜索。B树即为二叉搜索树,从根节点开始若查询的关键字与节点的关键字相等,则命中,否则,若查询关键字比节点关键字小,则进入左子节点,若查询关键字比节点关键字大,则进入右子节点,若左子节点或右子节点的指针为空,则找不到相应的关键字。
上述访问文件的方法,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。
图3为另一个实施例中访问文件的方法的流程图。如图3所示,该访问文件的方法,包括:
步骤302,获取对文件的操作请求。
步骤304,判断是否存在文件索引,若存在,执行步骤306,若不存在,执行步骤308。
步骤306,根据该操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件,然后执行步骤310。
步骤308,根据该操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件,然后执行步骤310。
步骤310,判断检索的文件是否发生了变化,若是,执行步骤312,若否,执行步骤314。
步骤312,更新内存缓存和该文件索引。
具体的,获取相应文件的最后修改时间或相应文件的大小;根据该最后修改时间或文件的大小判断该文件是否发生了变化;当判断出该文件发生了变化,则更新内存缓存和该文件索引。
当最后修改时间不为当前时间,即可判断出文件发生了变化。将文件大小与原记载的文件大小进行比较,若不同,则文件发生了变化。
更新文件索引可更新文件的大小、最后修改时间和其他信息等。当文件被删除时,也有删除XML文件中的节点信息。
步骤314,直接读取该文件。不需更新文件索引。
上述访问文件的方法,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。建立了内存缓存、文件索引、存储设备上文件的缓存索引机制,整个全盘扫描过程的时间复杂度由n提升到了log2(n)。相对于传统的根据文件名查找文件系统或存储空间或存储设备等上的一个文件或一类文件时,需要对所有文件搜索,建立文件索引后,根据文件名可在文件索引中检索到。当文件发生变化时,及时更新了文件索引,保证了文件索引的准确性。
在其他实施例中,在步骤302之前也可增加:扫描文件,将文件信息建立文件索引的步骤。
图4为一个实施例中访问文件的装置的结构框图。如图4所示,该访问文件的装置,包括操作请求获取模块410、判断模块420、检索模块430和索引建立模块440。其中:
操作请求获取模块410用于获取对文件的操作请求。
具体的,操作请求可为检索请求、修改请求或删除请求。检索请求可为对某个文件进行查询。修改请求可为单个文件的修改请求或批量文件的修改请求。删除请求可为对单个文件的删除请求或批量文件的删除请求。
判断模块420用于判断是否存在文件索引。
检索模块430用于当判断出存在文件索引时,根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
具体的,在内存缓存中采用Java中的TreeMap或B树方式等进行检索,其检索时的时间复杂度为对树进行检索的时间复杂度log2(n)。TreeMap采用自然顺序或自定义顺序进行遍历搜索。B树即为二叉搜索树,从根节点开始若查询的关键字与节点的关键字相等,则命中,否则,若查询关键字比节点关键字小,则进入左子节点,若查询关键字比节点关键字大,则进入右子节点,若左子节点或右子节点的指针为空,则找不到相应的关键字。
文件索引中每个节点包括文件名、是否为目录、最后修改时间、大小、文件类型、其他信息。其中,是否为目录是指是否为文件夹,可由Android、Linux系统或Java等已有的接口直接调用判断。文件类型可包括APK、图片、音频、视频、文本、文档、压缩包等。图片可包括PNG(Portable Network Graphic Format,可移植网格图形格式)、JPG(即JPEG)、JPEG(Joint Photographic ExpertsGROUP)、GIF(Graphics Interchange Format,图像互换格式)等。音频可包括MP3、WMA、MID等。视频可包括MP4、3GP格式等。文档可包括doc格式、ppt格式、xls格式、PDF格式等。压缩包可包括zip格式、7z格式、gz格式等。该其他信息可文件路径、文件自身的属性信息等。
索引建立模块440用于当判断出不存在文件索引时,根据该操作请求建立文件索引。
索引建立模块440用于扫描文件,将文件信息以XML节点形式或文件节点形式或数据库形式保存形成文件索引。
其中,该索引建立模块440还用于将文件信息以XML节点形式保存在XML文件中,且每个文件的父目录作为该文件在XML文件中的节点的父节点,扫描完后,将该XML文件作为文件索引。通过全盘扫描,文件形成一颗XML树,XML文件就是所有文件的索引。
同理,也可将文件信息以文件节点形式或数据库形式保存形成文件索引,其中,文件树型的各节点与文件索引中的各节点对应建立文件索引。
文件索引中每个节点包括文件名、是否为目录、最后修改时间、大小、文件类型、其他信息。其中,是否为目录是指是否为文件夹,可由Android、Linux系统或Java等已有的接口直接调用判断。文件类型可包括APK、图片、音频、视频、文本、文档、压缩包等。图片可包括PNG、JPG(即JPEG)、JPEG、GIF等。音频可包括MP3、WMA、MID等。视频可包括MP4、3GP格式等。文档可包括doc格式、ppt格式、xls格式、PDF格式等。压缩包可包括zip格式、7z格式、gz格式等。该其他信息可文件路径、文件自身的属性信息等。文件索引中每个节点的结构定义如表1所示。
检索模块430还用于在建立了文件索引后,将将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
上述访问文件的装置,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。
图5为另一个实施例中访问文件的装置的结构框图。如图5所示,该访问文件的装置,除了包括操作请求获取模块410、判断模块420、检索模块430和索引建立模块440,还包括更新模块450和读取模块460。其中,更新模块450用于当判断模块420判断出检索得到的文件发生了变化,则更新内存缓存和所述文件索引。
具体的,获取相应文件的最后修改时间或相应文件的大小;根据该最后修改时间或文件的大小判断该文件是否发生了变化;当判断出该文件发生了变化,则更新内存缓存和该文件索引。
当最后修改时间不为当前时间,即可判断出文件发生了变化。将文件大小与原记载的文件大小进行比较,若不同,则文件发生了变化。
更新文件索引可更新文件的大小、最后修改时间和其他信息等。当文件被删除时,也有删除XML文件中的节点信息。
读取模块460用于当判断模块判断出检索得到的文件未发生变化时,直接读取所述文件。
上述访问文件的装置,根据对文件的操作请求判断是否存在文件索引,若存在文件索引,则将文件索引加载在内存缓存中进行检索,得到相应的文件,若没有文件索引,则建立文件索引,在将文件索引加载在内存缓存中进行检索,得到相应的文件,将对文件系统或存储空间或存储设备等上的文件访问,变成对内存缓存和文件索引的检索,减少了对文件系统或存储空间或存储设备等的访问次数,提高了扫描效率。建立了内存缓存、文件索引、存储设备上文件的缓存索引机制,整个全盘扫描过程的时间复杂度由n提升到了log2(n)。相对于传统的根据文件名查找文件系统或存储空间或存储设备等上的一个文件或一类文件时,需要对所有文件搜索,建立文件索引后,根据文件名可在文件索引中检索到。当文件发生变化时,及时更新了文件索引,保证了文件索引的准确性。
图6为另一个实施例中访问文件的装置的结构框图。如图6所示,该访问文件的装置,除了包括操作请求获取模块410、判断模块420、检索模块430和索引建立模块440,还包括更新模块450和读取模块460,还包括获取模块470。
获取模块470用于获取相应文件的最后修改时间或相应文件的大小。
判断模块420用于根据该最后修改时间或文件的大小判断该文件是否发生了变化。当最后修改时间不为当前时间,即可判断出文件发生了变化。将文件大小与原记载的文件大小进行比较,若不同,则文件发生了变化。
该更新模块450还用于当判断出该文件发生了变化,则更新内存缓存和该文件索引。
更新文件索引可更新文件的大小、最后修改时间和其他信息等。当文件被删除时,也有删除XML文件中的节点信息。
读取模块460用于当判断模块判断出检索得到的文件未发生变化时,直接读取所述文件。
上述访问文件的方法,通过判断最后修改时间是否与当前时间相同,确定文件是否发生变化,数据比较小,节省计算资源。
图7为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图7中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、个人数字助理、智能电话、平板电脑、便携式媒体播放器、机顶盒等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图7所示,计算机系统1000包括处理器1010、存储器1020和系统总线1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060(例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。例如,计算机系统1000可以包括能在短距离内交换数据的蓝牙单元,用于照相的图像传感器,以及用于测量加速度的加速计。
如上面详细描述的,适用于本发明的计算机系统1000能执行访问文件的方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的访问文件的方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种访问文件的方法,包括以下步骤:
获取对文件的操作请求;
判断是否存在文件索引,若存在,则根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件;若不存在文件索引,则根据所述操作请求建立文件索引,将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
2.根据权利要求1所述的方法,其特征在于,在得到相应的文件后,所述方法还包括:
判断检索得到的文件是否发生了变化,若是,则更新内存缓存和所述文件索引,若否,则继续直接读取所述文件。
3.根据权利要求1所述的方法,其特征在于,在获取对文件的操作请求之前,所述方法还包括:
扫描文件,并将文件信息建立文件索引。
4.根据权利要求3所述的方法,其特征在于,所述扫描文件,并将文件信息建立文件索引的步骤包括:
扫描文件,将文件信息以XML节点形式或文件节点形式或数据库形式保存形成文件索引。
5.根据权利要求4所述的方法,其特征在于,所述将文件信息以XML节点形式保存形成文件索引的步骤包括:
将文件信息以XML节点形式保存在XML文件中,且每个文件的父目录作为所述文件在XML文件中的节点的父节点,扫描完后,将所述XML文件作为文件索引。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取相应文件的最后修改时间或相应文件的大小;
根据所述最后修改时间或文件的大小判断所述文件是否发生了变化;
当判断出所述文件发生了变化,则更新内存缓存和所述文件索引。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述文件索引中每个节点包括文件名、是否为目录、最后修改时间、大小、文件类型;所述操作请求为检索请求、修改请求或删除请求。
8.一种访问文件的装置,其特征在于,包括:
操作请求获取模块,用于获取对文件的操作请求;
判断模块,用于判断是否存在文件索引;
检索模块,用于当判断出存在文件索引时,根据所述操作请求将文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件;
索引建立模块,用于当判断出不存在文件索引时,根据所述操作请求建立文件索引;
所述检索模块还用于在建立了文件索引后,将将建立的文件索引加载入内存缓存中,在加载了文件索引的内存缓存中进行检索,得到相应的文件。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
更新模块,用于当判断模块判断出检索得到的文件发生了变化,则更新内存缓存和所述文件索引;
读取模块,用于当判断模块判断出检索得到的文件未发生变化时,直接读取所述文件。
10.根据权利要求8所述的装置,其特征在于,所述索引建立模块还用于在获取对文件的操作请求之前,扫描文件,并将文件信息建立文件索引。
11.根据权利要求10所述的装置,其特征在于,所述索引建立模块还用于扫描文件,将文件信息以XML节点形式或文件节点形式或数据库形式保存形成文件索引。
12.根据权利要求11所述的装置,其特征在于,所述索引建立模块还用于将文件信息以XML节点形式保存在XML文件中,且每个文件的父目录作为所述文件在XML文件中的节点的父节点,扫描完后,将所述XML文件作为文件索引。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取相应文件的最后修改时间或相应文件的大小;
所述判断模块还用于根据所述最后修改时间或文件的大小判断所述文件是否发生了变化;
所述更新模块还用于当判断出所述文件发生了变化,则更新内存缓存和所述文件索引。
14.根据权利要求8所述的装置,其特征在于,所述文件索引中每个节点包括文件名、是否为目录、最后修改时间、大小、文件类型;所述操作请求为检索请求、修改请求或删除请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510068420.8A CN104636464B (zh) | 2015-02-09 | 2015-02-09 | 访问文件的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510068420.8A CN104636464B (zh) | 2015-02-09 | 2015-02-09 | 访问文件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636464A true CN104636464A (zh) | 2015-05-20 |
CN104636464B CN104636464B (zh) | 2019-02-01 |
Family
ID=53215210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510068420.8A Active CN104636464B (zh) | 2015-02-09 | 2015-02-09 | 访问文件的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636464B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138649A (zh) * | 2015-08-26 | 2015-12-09 | 小米科技有限责任公司 | 数据的搜索方法、装置及终端 |
CN105912710A (zh) * | 2016-04-28 | 2016-08-31 | 深圳市金立通信设备有限公司 | 一种管理文件的方法和终端 |
CN107066506A (zh) * | 2017-01-11 | 2017-08-18 | 中国科学院空间应用工程与技术中心 | 一种提高空间科学与应用数据检索效率的方法及装置 |
CN107451239A (zh) * | 2017-07-26 | 2017-12-08 | 深圳Tcl新技术有限公司 | Linux终端及其文件索引方法、计算机可读存储介质 |
CN107679080A (zh) * | 2017-08-29 | 2018-02-09 | 努比亚技术有限公司 | 一种多媒体数据记录方法、终端及计算机可读存储介质 |
CN110287201A (zh) * | 2019-07-02 | 2019-09-27 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、设备及存储介质 |
CN111913914A (zh) * | 2020-08-20 | 2020-11-10 | 珠海奔图电子有限公司 | 文件处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5012405A (en) * | 1986-10-17 | 1991-04-30 | Hitachi, Ltd. | File management system for permitting user access to files in a distributed file system based on linkage relation information |
CN101046804A (zh) * | 2006-03-30 | 2007-10-03 | 国际商业机器公司 | 文件系统中搜索排序的方法及相关搜索引擎 |
CN101576854A (zh) * | 2009-04-03 | 2009-11-11 | 成都市华为赛门铁克科技有限公司 | 文件访问的方法、装置及系统 |
CN102075572A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种嵌入式web服务器 |
CN102110105A (zh) * | 2009-12-23 | 2011-06-29 | 新奥特(北京)视频技术有限公司 | 一种图文包装系统读取文件夹的方法和装置 |
CN103488772A (zh) * | 2013-09-27 | 2014-01-01 | 珠海金山网络游戏科技有限公司 | 一种通过外存对文件进行缓存的方法、系统及设备 |
-
2015
- 2015-02-09 CN CN201510068420.8A patent/CN104636464B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5012405A (en) * | 1986-10-17 | 1991-04-30 | Hitachi, Ltd. | File management system for permitting user access to files in a distributed file system based on linkage relation information |
CN101046804A (zh) * | 2006-03-30 | 2007-10-03 | 国际商业机器公司 | 文件系统中搜索排序的方法及相关搜索引擎 |
CN101576854A (zh) * | 2009-04-03 | 2009-11-11 | 成都市华为赛门铁克科技有限公司 | 文件访问的方法、装置及系统 |
CN102110105A (zh) * | 2009-12-23 | 2011-06-29 | 新奥特(北京)视频技术有限公司 | 一种图文包装系统读取文件夹的方法和装置 |
CN102075572A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种嵌入式web服务器 |
CN103488772A (zh) * | 2013-09-27 | 2014-01-01 | 珠海金山网络游戏科技有限公司 | 一种通过外存对文件进行缓存的方法、系统及设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138649A (zh) * | 2015-08-26 | 2015-12-09 | 小米科技有限责任公司 | 数据的搜索方法、装置及终端 |
CN105138649B (zh) * | 2015-08-26 | 2018-11-30 | 小米科技有限责任公司 | 数据的搜索方法、装置及终端 |
CN105912710A (zh) * | 2016-04-28 | 2016-08-31 | 深圳市金立通信设备有限公司 | 一种管理文件的方法和终端 |
CN107066506A (zh) * | 2017-01-11 | 2017-08-18 | 中国科学院空间应用工程与技术中心 | 一种提高空间科学与应用数据检索效率的方法及装置 |
CN107066506B (zh) * | 2017-01-11 | 2020-12-08 | 中国科学院空间应用工程与技术中心 | 一种提高空间科学与应用数据检索效率的方法及装置 |
CN107451239A (zh) * | 2017-07-26 | 2017-12-08 | 深圳Tcl新技术有限公司 | Linux终端及其文件索引方法、计算机可读存储介质 |
CN107679080A (zh) * | 2017-08-29 | 2018-02-09 | 努比亚技术有限公司 | 一种多媒体数据记录方法、终端及计算机可读存储介质 |
CN110287201A (zh) * | 2019-07-02 | 2019-09-27 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、设备及存储介质 |
CN111913914A (zh) * | 2020-08-20 | 2020-11-10 | 珠海奔图电子有限公司 | 文件处理方法、装置、电子设备及存储介质 |
CN111913914B (zh) * | 2020-08-20 | 2024-04-30 | 珠海奔图电子有限公司 | 文件处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104636464B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636464A (zh) | 访问文件的方法和装置 | |
US9678969B2 (en) | Metadata updating method and apparatus based on columnar storage in distributed file system, and host | |
CN105988996B (zh) | 一种索引文件生成方法及装置 | |
CN104268472B (zh) | 还原被第三方动态库修改函数地址的方法和装置 | |
US20070245235A1 (en) | Efficient storage of drawing objects in synchronizable electronic documents | |
WO2006051869A1 (ja) | 文書処理装置及び文書処理方法 | |
CN114880289A (zh) | 一种文件分组显示方法及计算设备 | |
CN111241040A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
JP2013020395A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN110795920B (zh) | 一种文档生成方法及设备 | |
US20140331117A1 (en) | Application-based dependency graph | |
CN116414935A (zh) | 一种基于Elastic Search的分布式搜索空间矢量数据的方法 | |
CN114817160A (zh) | 文件解压方法、装置、电子设备及计算机可读存储介质 | |
CN113343137A (zh) | 优化seo页面生成方法、装置、电子设备及存储介质 | |
JP5629438B2 (ja) | ファイル管理装置及びその制御方法 | |
JP6763837B2 (ja) | 検索ワードサジェスト装置、検索ワードサジェスト方法、および、検索ワードサジェストプログラム | |
US20130054585A1 (en) | Geographic search with mixed-precision results | |
CN113590550B (zh) | 文件创建方法、装置和电子设备 | |
CA3072655C (en) | Scan optimization of column oriented storage | |
CN107102866B (zh) | iOS系统下的原生APP文件生成方法、设备以及服务器 | |
CN115587123A (zh) | 基于aql检索不同数据库的方法、装置、设备及存储介质 | |
CN118055064A (zh) | 路由信息同步方法、装置、计算设备及存储介质 | |
CN116701545A (zh) | 审计数据分析方法、装置、存储介质及处理器 | |
CN116127098A (zh) | 知识图谱的构建方法、装置 | |
CN114020309A (zh) | 通过webpack构建多页面应用的方法、装置及存储介质 |
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 |