CN101882153A - 一种文件指针定位的方法及装置 - Google Patents

一种文件指针定位的方法及装置 Download PDF

Info

Publication number
CN101882153A
CN101882153A CN 201010203216 CN201010203216A CN101882153A CN 101882153 A CN101882153 A CN 101882153A CN 201010203216 CN201010203216 CN 201010203216 CN 201010203216 A CN201010203216 A CN 201010203216A CN 101882153 A CN101882153 A CN 101882153A
Authority
CN
China
Prior art keywords
file
location point
point
bunch
address
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.)
Pending
Application number
CN 201010203216
Other languages
English (en)
Inventor
孙蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CN 201010203216 priority Critical patent/CN101882153A/zh
Publication of CN101882153A publication Critical patent/CN101882153A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种文件指针定位的方法,包括:依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;从所述位置点的簇地址开始,定位所述目标文件指针的位置。本发明可以提高文件指针定位操作的效率。

Description

一种文件指针定位的方法及装置
技术领域
本发明涉及FAT文件系统的技术领域,特别是涉及一种文件指针定位的方法及一种文件指针定位的装置。
背景技术
所谓文件,是指存储在存储介质(如计算机硬盘、存储卡、磁盘)上数据的集合,操作系统以文件为单位对数据进行组织和管理。
一般而言,操作系统采用FAT((File Allocation Table,文件分配表)系统对其存储的各种文件进行组织与管理,并将与文件相关的信息存储在FAT表中,以供日后存取文件时使用。具体而言,文件数据在FAT系统中存储是以簇(cluster)为单位的,每个簇中含有固定数目的扇区(sector),在FAT文件系统中,文件的存储和访问依照FAT表制定的簇链式数据结构来进行,即对于文件数据的访问是以簇链为基础的,簇链存放于FAT表中。FAT表是在FAT系统中用于文件索引和定位引进的一种链式结构,FAT表的作用是记录存储介质中有关文件数据如何被分散存储在不同簇的信息。FAT表记录的目的是为了实现文件的链式存储,其记录了哪些簇已经被文件占用、还必须为每个已经占用的簇指明下一个簇的簇号,对于一个文件的最后一个簇,则要指明本簇无后续簇。当基于这种现有的FAT系统进行文件指针定位(seek)的操作时,一般都是从文件起始簇开始,顺序寻找下一个簇号,直到找到指定的文件指针位置。
例如,参考下表所示的文件存储结构示意图:
 file1_1   file2_1   file1_2  file1_3   file3_1   file3_2   file2_2   file3_3   file3_4   file1_4
 1   2   3  4   5   6   7   8   9   A
假设上表中每一列表示1个簇,第二行的数字代表簇号,文件file1、file2、file3在磁盘上的存放情况如第一行所示,其中,file1_1、file2_1、file3_1分别表示文件file1,file2,file3的起始簇,即文件file1的簇链为:第1簇(file1_1)——第3簇(file1_2)——第4簇(file1_3)——第A簇(file1_4);
文件file2的簇链为:第2簇(file2_1)——第7簇(file2_2);
文件file3的簇链为第5簇(file3_1)——第6簇(file3_2)——第8簇(file3_3)——第9簇(file3_4)。
假设当前每个簇中包含8个扇区,每个扇区为512bytes,则每个簇的大小(size)为4k,在这种情况下,如果需要定位file1的文件指针到13k的位置,则采用现有技术需要经过如下过程:
定位file1的起始簇第1簇,发现第1簇内不是file1的13k位置;于是通过第1簇得到下一簇为第3簇,由于第3簇对应的文件位置为5~8k,所以确定第3簇也不是file1的13k位置;于是再通过第3簇得到下一簇为第4簇,由于簇4对应的文件位置为9~12k,所以确定第4簇也不是file1的13k位置;于是再通过第4簇得到第A簇,在第A簇中偏移两个sector的位置确定为13k。至此,文件指针的定位(seek)操作完成。
采用这种现有的文件指针定位方法虽然可以准确地完成文件指针定位的功能,但是效率不高,因为在每次文件指针定位时,都需要从文件的起始簇开始寻找,从而会大大降低seek操作的效率。当文件长度很大,或者,要定位的文件位置比较靠近文件尾时,这个问题将会更加严重。
因而,目前需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高文件指针定位操作的效率。
发明内容
本发明所要解决的技术问题是提供一种文件指针定位的方法及装置,用以提高文件指针定位操作的效率。
为了解决上述问题,本发明公开了一种文件指针定位的方法,包括:
依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
从所述位置点的簇地址开始,定位所述目标文件指针的位置。
优选的,所述的方法,还包括:
若预置的位置点列表中没有在所述目标文件指针位置之前的位置点,则从当前文件的起始簇地址开始,定位所述目标文件指针的位置。
优选的,所述位置点包括主位置点,所述位置点列表通过以下步骤设置:
依据FAT表获取当前文件的簇链;
按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
优选的,所述位置点包括主位置点,所述位置点列表通过以下步骤设置:
在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
优选的,所述位置点还包括子位置点,所述的方法还包括:
将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
优选的,所述的方法,还包括:
若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
优选的,所述定位目标文件指针位置的步骤包括:
从当前定位的簇地址开始,通过查找FAT表获得下一个簇地址;
判断所述目标文件指针位置是否在该簇内,若否,则继续查找下一个簇地址;若是,则在该簇中确定所述目标文件指针位置对应的扇区以及在扇区中的偏移量。
优选的,所述的方法,还包括:
若在预置的位置点列表中,查找到与所述目标文件指针位置对应的位置点,则直接依据所述位置点对应的簇地址及文件指针位置信息,定位所述目标文件指针的位置。
优选的,所述位置点列表存在内存中。
优选的,所述文件为音频文件或视频文件,所述主位置点设置操作在打开文件获取文件长度时进行。
本发明实施例还公开了一种文件指针定位的装置,包括:
位置点预置模块,用于预置位置点列表;
位置点查找模块,用于依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
第一定位模块,用于从所述位置点的簇地址开始,定位所述目标文件指针的位置。
优选的,所述的装置,还包括:
第二定位模块,用于在预置的位置点列表中没有在所述目标文件指针位置之前的位置点时,从当前文件的起始簇地址开始,定位所述目标文件指针的位置。
优选的,所述位置点包括主位置点,所述位置点预置模块包括:
簇链获取子模块,用于依据FAT表获取当前文件的簇链;
第一主位置点确定子模块,用于按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
优选的,所述位置点包括主位置点,所述位置点预置模块包括:
第二主位置点确定子模块,用于在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
优选的,所述位置点还包括子位置点,所述的装置还包括:
子位置点设置模块,用于将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
优选的,所述的装置,还包括:
子位置点替换模块,用于若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
优选的,所述位置点列表存在内存中。
与现有技术相比,本发明具有以下优点:
本发明根据播放音视频文件时seek操作的特征,在每次seek操作的过程中,根据一定的规则保存一些位置点的信息,以便在以后的seek操作中可以作为参考,而不需要从文件的起始簇开始重新进行定位,从而提高seek操作的效率,提高文件的访问速度,并提高整个系统的音视频播放效果。
附图说明
图1是本发明的一种文件指针定位的方法实施例1的步骤流程图;
图2是本发明的一种文件指针定位的方法实施例2的步骤流程图;
图3是本发明的一种文件指针定位的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
目前手机、PMP等手持设备基本都支持多种格式的音频文件和视频文件的播放,这些文件一般是存放在sd卡,或nand flash上的,总之都是以文件的形式存放于磁盘上,都需要通过FAT系统来管理存放的音频或视频数据,以及,通过FAT系统读取音频或视频数据来实现播放的功能。
从数据存储方式来说,不同格式的音频文件和视频文件的数据存放格式不相同;在播放这些文件的时候,读取文件数据的操作方式也不尽相同。如对于视频文件(包含音频)而言,视频文件中的音频和视频有两种存放方式,一种是交错存放,即视频数据块和音频数据块在文件中交错出现;一种是分开存放,即文件分成两大块,一块存视频数据,一块存音频数据,事实上,无论哪种存放方式都不可能通过简单地顺序读取数据实现视频文件的正确播放。由于在视频数据块中会存放多帧视频数据,在音频数据块中会存放多帧音频数据,播放时需要音视频同步,所以需要在这两块数据中来回的读数据,这就涉及到文件指针定位的操作,而且这种操作会比较频繁,如果seek操作的效率低下的话,必然影响读取音视频文件的速度,从而导致音视频文件播放不流畅或者音视频不同步的情况发生。随着目前多媒体处理系统支持的音视频格式越来越多,其对应的文件也越来越大,当文件尺寸非常大时,这种情况会更加严重。
具体而言,在手机,PMP等包含了音视频播放等功能的各类设备上,经常可能出现以下几种情况:
第一种:每次文件指针定位的位置都是上一次文件指针定位的位置之后;
例如:上一次已经seek到了0x1000的位置,如果现在要seek到0x2000的位置,也无法从0x1000对应的簇号开始寻找,而是必须从文件的起始簇开始寻找。
第二种:每次文件指针定位的位置都是上一次文件指针定位的位置之前;
例如:上一次seek到0x2000的位置,现在要seek到0x1000,虽然在seek到0x2000的过程中已经可以得到0x1000的位置对应的簇号,但是由于没有记录下来,导致仍然需要从文件起始簇开始顺序寻找0x1000的位置对应的簇号。
第三种:当要访问的文件长度很大,要定位的文件位置又比较靠近文件尾时,由于文件的簇链很长,如果要从文件起始簇开始直到找到文件最后的簇号是非常耗时的,并且虽然此次操作几乎遍历了整个文件的所有簇号,但是由于没有任何记录处理,消耗的大量时间对以后的操作没有起到任何有益的作用。
上述几种情况在实际中会大概率地出现,所以,对于多媒体处理系统来说,FAT系统seek操作的效率是至关重要的,提高seek操作的效率,可直接提高文件的访问速度,从而可以提高整个系统的音视频播放效果。
正是由于本专利发明人注意到了这一点,因而创造性地提出本发明实施例的核心构思之一在于,根据播放音视频文件时seek操作的特征,在每次seek操作的过程中,根据一定的规则保存一些位置点的信息,以便在以后的seek操作中可以作为参考,而不需要从文件的起始簇开始重新进行定位。
参考图1,示出了本发明的一种文件指针定位的方法实施例1的步骤流程图,具体可以包括以下步骤:
步骤101、依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
步骤102、从所述位置点的簇地址开始,定位所述目标文件指针的位置。
在本发明的一种优选实施例中,所述位置点可以包括主位置点,所述位置点列表可以在文件指针定位前,通过以下步骤进行设置:
依据FAT表获取当前文件的簇链;
按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
在具体实现中,在音频文件或视频文件播放(读取)前有一次获取文件长度的操作,即seek到文件尾的操作,所述主位置点的设置操作即可以在该获取文件长度时进行。一种主位置点设置的具体操作示例为,首先从当前文件的起始簇地址开始seek,通过不断地查找FAT表来获得下一个簇地址,针对每次获得的下一个簇地址,都判断其是否为满足预设的间隔簇数对应的主位置点,该间隔簇数优选为簇大小的整数倍,如为64M的整数倍,若是,则记录为主位置点,直到seek至文件尾(簇链结束标识)。
当设置好主位置点后,后续的目标文件指针的seek操作就不需要从起始簇地址开始,而从在其之前最接近的主位置点开始seek就可以了。在实际中,所述位置点列表可以保存在内存中。
例如,假设在音频文件或视频文件播放(读取)前获取文件长度的操作中定位到如下几个主位置点:64Mbytes位置、128Mbytes位置、192Mbytes位置、256Mbytes位置;当前seek的目标文件指针位置为180Mbytes处,则从128Mbytes位置对应的簇地址开始seek,通过查FAT表得到下一个簇地址,直到找到180M位置对应的簇,再找到180M位置所在的sector,以及在sector中的偏移,seek操作完成。
参考图2,示出了本发明的一种文件指针定位的方法实施例2的步骤流程图,具体可以包括以下步骤:
步骤201、依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
步骤202、若所述预置的位置点列表存在目标文件指针位置之前最接近的位置点,则从所述位置点的簇地址开始,执行步骤204;
步骤203、若所述预置的位置点列表中没有在目标文件指针位置之前的位置点,则从当前文件的起始簇地址开始,执行步骤204;
步骤204、从当前定位的簇地址开始,通过查找FAT表获得下一个簇地址;
步骤205、判断当前定位到的簇地址及文件指针位置是否满足主位置点判断条件且未记录在位置点列表中,所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置,若否,则直接执行步骤207;若是,则先执行步骤206,再执行步骤207;
步骤206、将当前簇地址及文件指针位置写入位置点列表中;
步骤207、判断所述目标文件指针位置是否在该簇内,若否,则返回步骤204;若是,则执行步骤208;
步骤208、在该簇中确定所述目标文件指针位置对应的扇区以及在扇区中的偏移量。
可以理解,如果在实际中没有在音频文件或视频文件播放(读取)前获取文件长度的操作,则在本实施例中,所述主位置点可以在从文件起始簇地址开始seek的操作中,通过以下步骤设置:
在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
例如,在开始播放(读取)文件时,假设当前seek的文件指针位置为180Mbytes处,由于没有在先的位置点,所以只能从文件起始簇地址开始,通过查FAT表得到下一个簇地址,针对每次获得的下一个簇地址,都判断其是否为满足预设间隔簇数的主位置点,若是,则记录为主位置点,假设该间隔簇数为64M的整数倍,则在经过64Mbytes位置、128Mbytes位置时,在位置点列表中分别作为主位置点记录下对应的簇地址和文件指针位置,直到找到180Mbytes位置对应的簇地址(如簇号),然后遍历该簇中的扇区,直到找到180Mbytes位置所在的sector,以及在sector中的偏移。
为进一步提高seek操作的效率,在本发明实施例中,还可以在相邻主位置点形成的文件区间内部,动态地设置M个最近几次seek到的文件指针位置(子位置点),M为正整数,可以由用户任意设定。即作为本发明的一种优选实施例,所述位置点还可以包括子位置点,本实施例还可以包括如下步骤:
步骤209、将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
如将上例中180Mbytes位置对应的簇地址和文件指针位置作为子位置点信息写入位置点列表中。
为使本领域技术人员更好地理解本发明,以下通过一个具体示例说明本实施例。
假设当前seek的目标文件指针位置为200Mbytes处,由于位置点列表中记录了64M、128Mbytes位置的主位置点信息,还记录了180Mbytes位置的子位置点信息,所以可以得到在目标位置200Mbytes之前最接近的位置点为180Mbytes,故从该子位置点开始seek。通过查FAT表得到下一个簇地址,针对该簇地址,一是判断其是否为满足预设的间隔簇数对应的主位置点,二是判断其是否为200M位置对应的簇,假设所述间隔簇数为64M的整数倍,则在本次seek操作过程中,经过192Mbytes的位置时,会在位置点列表中作为主位置点记录下对应的簇地址和文件指针位置;在找到200M位置对应的簇地址以及所在sector及在sector中的偏移后,将该目标文件指针位置作为子位置点记录至位置点列表,seek操作完成。
在实际中,在相邻主位置点之间设置的子位置点是可以依据实际情况随时更新或替换的,即对于位置点列表中记录的子位置点而言,如果当次seek到的目标文件指针位置满足替换条件,则用当次seek到的目标文件指针位置及对应的簇地址,替换位置点列表中与其最接近的那个子位置点的记录。
即在本发明实施例中,还可以包括如下步骤:
若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
例如,假设当次seek的目标文件指针位置为180Mbytes处,当前的位置点列表中记录了以下主位置点信息:64Mbytes对应的簇地址及文件指针位置、128Mbytes对应的簇地址及文件指针位置、192Mbytes对应的簇地址及文件指针位置、256Mbytes对应的簇地址及文件指针位置;以及,在该位置点列表中记录了以下子位置点信息:160Mbytes对应的簇地址及文件指针位置;在这种情况下,则从160Mbytes对应的簇地址开始,通过查FAT表得到下一个簇地址,直到找到180M位置对应的簇,再找到180M位置所在的sector,以及在sector中的偏移;如果子位置点的文件指针位置与目标文件指针位置的距离大于预设的距离范围FILE_SEEK_CACHE_MIN_INTERVAL,如10M,则将180Mbytes对应的簇地址及文件指针位置替换位置点列表中对于子位置点160Mbytes的记录。
在具体实现中,如果在预置的位置点列表中查找到的在目标文件指针位置之前最接近的位置点、即为目标文件指针位置,则直接依据所述位置点对应的簇地址及文件指针位置信息,定位所述目标文件指针的位置即可。
对于本发明实施例而言,所述主位置点之间的簇数间隔、相邻主位置点之间的子位置点个数以及子位置点的替换条件可以由本领域技术人员根据实际情况任意设置,本发明对此无需加以限制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图3,示出了本发明的一种文件指针定位的装置实施例的结构图,具体可以包括以下模块:
位置点预置模块301,用于预置位置点列表;
位置点查找模块302,用于依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
第一定位模块302,用于从所述位置点的簇地址开始,定位所述目标文件指针的位置。
一般而言,所述定位目标文件指针位置的操作可以由以下子模块完成:
FAT查找子模块,用于从当前定位的簇地址开始,通过查找FAT表获得下一个簇地址;
目标位置确定子模块,用于判断所述目标文件指针位置是否在该簇内,若否,则继续查找下一个簇地址;若是,则在该簇中确定所述目标文件指针位置对应的扇区以及在扇区中的偏移量。
在具体实现中,所述位置点可以包括主位置点,所述位置点预置模块具体可以包括以下子模块:
簇链获取子模块,用于依据FAT表获取当前文件的簇链;
第一主位置点确定子模块,用于按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
作为本发明的一种优选实施例,所述位置点还可以包括子位置点,所述文件指针定位的装置还可以包括如下模块:
子位置点设置模块,用于将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
为进一步提高seek操作的效率,保证子位置点总是对应最近几次seek到的文件指针位置,在本发明的一种优选实施例中,所述文件指针定位的装置还可以包括如下模块:
子位置点替换模块,用于若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
作为本发明的另一种优选实施例中,所述文件指针定位的装置还可以包括以下模块:
第二定位模块,用于在预置的位置点列表中没有在所述目标文件指针位置之前的位置点时,从当前文件的起始簇地址开始,定位所述目标文件指针的位置。
在这种情况下,所述位置点预置模块还可以通过以下子模块设置主位置点:
第二主位置点确定子模块,用于在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
在实际中,所述位置点列表可以设置在内存中。
对于装置实施例而言,由于其与前述的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:多处理器系统、服务器、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本发明所提供的一种文件指针定位的方法及一种文件指针定位的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1.一种文件指针定位的方法,其特征在于,包括:
依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
从所述位置点的簇地址开始,定位所述目标文件指针的位置。
2.如权利要求1所述的方法,其特征在于,还包括:
若预置的位置点列表中没有在所述目标文件指针位置之前的位置点,则从当前文件的起始簇地址开始,定位所述目标文件指针的位置。
3.如权利要求1或2所述的方法,其特征在于,所述位置点包括主位置点,所述位置点列表通过以下步骤设置:
依据FAT表获取当前文件的簇链;
按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
4.如权利要求2所述的方法,其特征在于,所述位置点包括主位置点,所述位置点列表通过以下步骤设置:
在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
5.如权利要求4所述的方法,其特征在于,所述位置点还包括子位置点,所述的方法还包括:
将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
6.如权利要求5所述的方法,其特征在于,还包括:
若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
7.如权利要求1或2所述的方法,其特征在于,所述定位目标文件指针位置的步骤包括:
从当前定位的簇地址开始,通过查找FAT表获得下一个簇地址;
判断所述目标文件指针位置是否在该簇内,若否,则继续查找下一个簇地址;若是,则在该簇中确定所述目标文件指针位置对应的扇区以及在扇区中的偏移量。
8.如权利要求1所述的方法,其特征在于,还包括:
若在预置的位置点列表中,查找到与所述目标文件指针位置对应的位置点,则直接依据所述位置点对应的簇地址及文件指针位置信息,定位所述目标文件指针的位置。
9.如权利要求1所述的方法,其特征在于,所述位置点列表存在内存中。
10.如权利要求3所述的方法,其特征在于,所述文件为音频文件或视频文件,所述主位置点设置操作在打开文件获取文件长度时进行。
11.一种文件指针定位的装置,其特征在于,包括:
位置点预置模块,用于预置位置点列表;
位置点查找模块,用于依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;
第一定位模块,用于从所述位置点的簇地址开始,定位所述目标文件指针的位置。
12.如权利要求11所述的装置,其特征在于,还包括:
第二定位模块,用于在预置的位置点列表中没有在所述目标文件指针位置之前的位置点时,从当前文件的起始簇地址开始,定位所述目标文件指针的位置。
13.如权利要求11或12所述的装置,其特征在于,所述位置点包括主位置点,所述位置点预置模块包括:
簇链获取子模块,用于依据FAT表获取当前文件的簇链;
第一主位置点确定子模块,用于按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N为正整数。
14.如权利要求12所述的装置,其特征在于,所述位置点包括主位置点,所述位置点预置模块包括:
第二主位置点确定子模块,用于在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。
15.如权利要求14所述的装置,其特征在于,所述位置点还包括子位置点,所述的装置还包括:
子位置点设置模块,用于将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点列表中。
16.如权利要求15所述的装置,其特征在于,还包括:
子位置点替换模块,用于若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位置点信息。
17.如权利要求11所述的装置,其特征在于,所述位置点列表存在内存中。
CN 201010203216 2010-06-10 2010-06-10 一种文件指针定位的方法及装置 Pending CN101882153A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010203216 CN101882153A (zh) 2010-06-10 2010-06-10 一种文件指针定位的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010203216 CN101882153A (zh) 2010-06-10 2010-06-10 一种文件指针定位的方法及装置

Publications (1)

Publication Number Publication Date
CN101882153A true CN101882153A (zh) 2010-11-10

Family

ID=43054167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010203216 Pending CN101882153A (zh) 2010-06-10 2010-06-10 一种文件指针定位的方法及装置

Country Status (1)

Country Link
CN (1) CN101882153A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663905A (zh) * 2012-04-28 2012-09-12 苏州世华天翼电子科技有限公司 一种电子教材的制备方法
CN111417011A (zh) * 2020-03-23 2020-07-14 湖南国科微电子股份有限公司 seek请求响应方法及装置、设备及可读存储介质,播放器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265152A1 (en) * 2001-06-04 2002-12-11 Hewlett-Packard Company Virtual file system for dynamically-generated web pages
CN101051318A (zh) * 2007-05-11 2007-10-10 北京中星微电子有限公司 利用文件分配表进行磁盘数据簇链接及寻道的方法
US20090265384A1 (en) * 2008-04-17 2009-10-22 Research In Motion Limited Methods And Apparatus For Improving Backward Seek Performance For Multimedia Files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265152A1 (en) * 2001-06-04 2002-12-11 Hewlett-Packard Company Virtual file system for dynamically-generated web pages
CN101051318A (zh) * 2007-05-11 2007-10-10 北京中星微电子有限公司 利用文件分配表进行磁盘数据簇链接及寻道的方法
US20090265384A1 (en) * 2008-04-17 2009-10-22 Research In Motion Limited Methods And Apparatus For Improving Backward Seek Performance For Multimedia Files

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663905A (zh) * 2012-04-28 2012-09-12 苏州世华天翼电子科技有限公司 一种电子教材的制备方法
CN111417011A (zh) * 2020-03-23 2020-07-14 湖南国科微电子股份有限公司 seek请求响应方法及装置、设备及可读存储介质,播放器
CN111417011B (zh) * 2020-03-23 2022-03-25 湖南国科微电子股份有限公司 seek请求响应方法及装置、设备及可读存储介质,播放器

Similar Documents

Publication Publication Date Title
US11468027B2 (en) Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor
CN102331986B (zh) 一种数据库缓存管理方法及一种数据库服务器
CN107818115B (zh) 一种处理数据表的方法及装置
US9047330B2 (en) Index compression in databases
CN102741843B (zh) 从数据库中读取数据的方法及装置
CN102339315B (zh) 一种广告数据的索引更新方法和系统
CN104750740A (zh) 数据更新的方法及装置
CN104461390A (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
US20100094870A1 (en) Method for massively parallel multi-core text indexing
CN102769638A (zh) 一种下载文件的方法、装置及系统
CN103186622A (zh) 一种全文检索系统中索引信息的更新方法以及装置
US20150363446A1 (en) System and Method for Indexing Streams Containing Unstructured Text Data
CN101876956A (zh) Sd卡的文件存取方法及装置
CN109213898A (zh) 视频监控系统的录像检索方法及装置
CN104598550A (zh) 一种网络视频索引的更新方法和装置
US9734171B2 (en) Intelligent redistribution of data in a database
US20130148227A1 (en) Controlling tape layout for de-duplication
US10789234B2 (en) Method and apparatus for storing data
CN102024051B (zh) 分布式内存数据库数据更新方法
CN103207872A (zh) 一种实时索引方法和服务器
CN101882153A (zh) 一种文件指针定位的方法及装置
CN101894161B (zh) 一种用于实时监控的循环事件存取方法和装置
CN110471925A (zh) 实现搜索系统中索引数据同步的方法及系统
CN109189724A (zh) 提高视频监控系统音视频数据存储效率的方法及装置
CN102768672A (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
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO CO., LTD.

Free format text: FORMER OWNER: BEIJING ZHONGXING MICROELECTRONICS CO., LTD.

Effective date: 20110331

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 16/F, SHINING BUILDING, NO. 35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 610, NATIONAL INTEGRATED CIRCUIT DESIGN PARK (CHUANGYUAN BUILDING), NO. 21-1, CHANGJIANG ROAD, WUXI NEW DISTRICT, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110331

Address after: 214028 national integrated circuit design (21-1), Changjiang Road, New District, Jiangsu, Wuxi, China, China (610)

Applicant after: Wuxi Vimicro Co., Ltd.

Address before: 100083 Haidian District, Xueyuan Road, No. 35, the world building, the second floor of the building on the ground floor, No. 16

Applicant before: Beijing Vimicro Corporation

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20101110