一种文件指针定位的方法及装置的制作方法

文档序号:6604337阅读:131来源:国知局
专利名称:一种文件指针定位的方法及装置的制作方法
技术领域
本发明涉及FAT文件系统的技术领域,特别是涉及一种文件指针定位的方法及一 种文件指针定位的装置。
背景技术
所谓文件,是指存储在存储介质(如计算机硬盘、存储卡、磁盘)上数据的集合,操 作系统以文件为单位对数据进行组织和管理。一般而言,操作系统采用FAT ((File Allocation Table,文件分配表)系统对其存 储的各种文件进行组织与管理,并将与文件相关的信息存储在FAT表中,以供日后存取文 件时使用。具体而言,文件数据在FAT系统中存储是以簇(cluster)为单位的,每个簇中含 有固定数目的扇区(sector),在FAT文件系统中,文件的存储和访问依照FAT表制定的簇链 式数据结构来进行,即对于文件数据的访问是以簇链为基础的,簇链存放于FAT表中。FAT 表是在FAT系统中用于文件索引和定位引进的一种链式结构,FAT表的作用是记录存储介 质中有关文件数据如何被分散存储在不同簇的信息。FAT表记录的目的是为了实现文件的 链式存储,其记录了哪些簇已经被文件占用、还必须为每个已经占用的簇指明下一个簇的 簇号,对于一个文件的最后一个簇,则要指明本簇无后续簇。当基于这种现有的FAT系统进 行文件指针定位(seek)的操作时,一般都是从文件起始簇开始,顺序寻找下一个簇号,直 到找到指定的文件指针位置。例如,参考下表所示的文件存储结构示意图
filel—lfile2—lfilel—2filel—3file3—lfile3—2file2—2file3—3file3—4filel—4123456789A假设上表中每一列表示1个簇,第二行的数字代表簇号,文件filel、file2、 file3在磁盘上的存放情况如第一行所示,其中,filel_l、file2_l、file3_l分别表示文 件filel,file2, file3的起始簇,即文件filel的簇链为第1簇(filel_l)——第3簇 (filel_2)——第 4 簇(filel_3)——第 A 簇(filel_4);文件file2的簇链为第2簇(file2_l)——第7簇(file2_2);文件file3的簇链为第5簇(file3_l)——第6簇(file3_2)——第8簇 (file3_3)——第 9 簇(file3_4)。假设当前每个簇中包含8个扇区,每个扇区为512bytes,则每个簇的大小(size) 为4k,在这种情况下,如果需要定位filel的文件指针到13k的位置,则采用现有技术需要 经过如下过程定位filel的起始簇第1簇,发现第1簇内不是filel的13k位置;于是通过第 1簇得到下一簇为第3簇,由于第3簇对应的文件位置为5 8k,所以确定第3簇也不是 filel的13k位置;于是再通过第3簇得到下一簇为第4簇,由于簇4对应的文件位置为9 12k,所以确定第4簇也不是filel的13k位置;于是再通过第4簇得到第A簇,在第A 簇中偏移两个sector的位置确定为13k。至此,文件指针的定位(seek)操作完成。采用这种现有的文件指针定位方法虽然可以准确地完成文件指针定位的功能,但 是效率不高,因为在每次文件指针定位时,都需要从文件的起始簇开始寻找,从而会大大降 低seek操作的效率。当文件长度很大,或者,要定位的文件位置比较靠近文件尾时,这个问 题将会更加严重。因而,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够提高文 件指针定位操作的效率。

发明内容
本发明所要解决的技术问题是提供一种文件指针定位的方法及装置,用以提高文 件指针定位操作的效率。为了解决上述问题,本发明公开了一种文件指针定位的方法,包括依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件 指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;从所述位置点的簇地址开始,定位所述目标文件指针的位置。优选的,所述的方法,还包括若预置的位置点列表中没有在所述目标文件指针位置之前的位置点,则从当前文 件的起始簇地址开始,定位所述目标文件指针的位置。优选的,所述位置点包括主位置点,所述位置点列表通过以下步骤设置依据FAT表获取当前文件的簇链;按照预设的间隔簇数将当前文件的簇链等分成N个区间,在每个区间中确定一个 主位置点,并将该主位置点对应的簇地址及文件指针位置写入位置点列表中,其中,所述N 为正整数。优选的,所述位置点包括主位置点,所述位置点列表通过以下步骤设置在从当前文件的起始簇地址开始,定位目标文件指针的位置的过程中,若当前定 位到的簇地址及文件指针位置满足主位置点判断条件且未记录在位置点列表中,则将当前 簇地址及文件指针位置写入位置点列表中;所述主位置点判断条件为,对应于按照预设的 间隔簇数确定的簇地址及文件指针位置。优选的,所述位置点还包括子位置点,所述的方法还包括将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写入位置点 列表中。优选的,所述的方法,还包括若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范 围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位 直点fn息。优选的,所述定位目标文件指针位置的步骤包括从当前定位的簇地址开始,通过查找FAT表获得下一个簇地址;判断所述目标文件指针位置是否在该簇内,若否,则继续查找下一个簇地址;若
5是,则在该簇中确定所述目标文件指针位置对应的扇区以及在扇区中的偏移量。优选的,所述的方法,还包括若在预置的位置点列表中,查找到与所述目标文件指针位置对应的位置点,则直 接依据所述位置点对应的簇地址及文件指针位置信息,定位所述目标文件指针的位置。优选的,所述位置点列表存在内存中。优选的,所述文件为音频文件或视频文件,所述主位置点设置操作在打开文件获 取文件长度时进行。本发明实施例还公开了一种文件指针定位的装置,包括位置点预置模块,用于预置位置点列表;位置点查找模块,用于依据需要定位的目标文件指针位置,在预置的位置点列表 中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文 件指针位置信息;第一定位模块,用于从所述位置点的簇地址开始,定位所述目标文件指针的位置。优选的,所述的装置,还包括第二定位模块,用于在预置的位置点列表中没有在所述目标文件指针位置之前的 位置点时,从当前文件的起始簇地址开始,定位所述目标文件指针的位置。优选的,所述位置点包括主位置点,所述位置点预置模块包括簇链获取子模块,用于依据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的目标文件指针位置为ISOMbytes处,则从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的文件指针位置为ISOMbytes 处,由于没有在先的位置点,所以只能从文件起始簇地址开始,通过查FAT表得到下一个 簇地址,针对每次获得的下一个簇地址,都判断其是否为满足预设间隔簇数的主位置点, 若是,则记录为主位置点,假设该间隔簇数为64M的整数倍,则在经过64Mbytes位置、 128Mbytes位置时,在位置点列表中分别作为主位置点记录下对应的簇地址和文件指针位 置,直到找到ISOMbytes位置对应的簇地址(如簇号),然后遍历该簇中的扇区,直到找到 180Mbytes位置所在的sector,以及在sector中的偏移。为进一步提高seek操作的效率,在本发明实施例中,还可以在相邻主位置点形成 的文件区间内部,动态地设置M个最近几次seek到的文件指针位置(子位置点),M为正整 数,可以由用户任意设定。即作为本发明的一种优选实施例,所述位置点还可以包括子位置 点,本实施例还可以包括如下步骤步骤209、将定位到的目标文件指针位置及对应的簇地址,作为子位置点的信息写 入位置点列表中。如将上例中ISOMbytes位置对应的簇地址和文件指针位置作为子位置点信息写 入位置点列表中。为使本领域技术人员更好地理解本发明,以下通过一个具体示例说明本实施例。假设当前seek的目标文件指针位置为200Mbytes处,由于位置点列表中记录了 64M、128Mbytes位置的主位置点信息,还记录了 ISOMbytes位置的子位置点信息,所以可以 得到在目标位置200Mbytes之前最接近的位置点为ISOMbytes,故从该子位置点开始seek。 通过查FAT表得到下一个簇地址,针对该簇地址,一是判断其是否为满足预设的间隔簇数 对应的主位置点,二是判断其是否为200M位置对应的簇,假设所述间隔簇数为64M的整数倍,则在本次seek操作过程中,经过192Mbytes的位置时,会在位置点列表中作为主位置点 记录下对应的簇地址和文件指针位置;在找到200M位置对应的簇地址以及所在sector及 在sector中的偏移后,将该目标文件指针位置作为子位置点记录至位置点列表,seek操作 完成。在实际中,在相邻主位置点之间设置的子位置点是可以依据实际情况随时更新或 替换的,即对于位置点列表中记录的子位置点而言,如果当次seek到的目标文件指针位置 满足替换条件,则用当次seek到的目标文件指针位置及对应的簇地址,替换位置点列表中 与其最接近的那个子位置点的记录。即在本发明实施例中,还可以包括如下步骤若所述目标文件指针位置,与在先记录的最接近子位置点相比超出一定距离范 围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表中所述在先记录的子位 直点fn息。例如,假设当次seek的目标文件指针位置为ISOMbytes处,当前的位置点列表中 记录了以下主位置点信息64MbyteS对应的簇地址及文件指针位置、128Mbytes对应的簇 地址及文件指针位置、192Mbytes对应的簇地址及文件指针位置、256Mbytes对应的簇地址 及文件指针位置;以及,在该位置点列表中记录了以下子位置点信息160MbyteS对应的簇 地址及文件指针位置;在这种情况下,则从160Mbytes对应的簇地址开始,通过查FAT表得 到下一个簇地址,直到找到180M位置对应的簇,再找到180M位置所在的sector,以及在 sector中的偏移;如果子位置点的文件指针位置与目标文件指针位置的距离大于预设的 距离范围FILE_SEEK_CACHE_MIN_INTERVAL,如10M,则将180Mbytes对应的簇地址及文件指 针位置替换位置点列表中对于子位置点160Mbytes的记录。在具体实现中,如果在预置的位置点列表中查找到的在目标文件指针位置之前最 接近的位置点、即为目标文件指针位置,则直接依据所述位置点对应的簇地址及文件指针 位置信息,定位所述目标文件指针的位置即可。对于本发明实施例而言,所述主位置点之间的簇数间隔、相邻主位置点之间的子 位置点个数以及子位置点的替换条件可以由本领域技术人员根据实际情况任意设置,本发 明对此无需加以限制。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组 合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发 明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书 中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。参考图3,示出了本发明的一种文件指针定位的装置实施例的结构图,具体可以包 括以下模块位置点预置模块301,用于预置位置点列表;位置点查找模块302,用于依据需要定位的目标文件指针位置,在预置的位置点列 表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及 文件指针位置信息;第一定位模块302,用于从所述位置点的簇地址开始,定位所述目标文件指针的位置。
10
一般而言,所述定位目标文件指针位置的操作可以由以下子模块完成FAT查找子模块,用于从当前定位的簇地址开始,通过查找FAT表获得下一个簇地 址;目标位置确定子模块,用于判断所述目标文件指针位置是否在该簇内,若否,则继 续查找下一个簇地址;若是,则在该簇中确定所述目标文件指针位置对应的扇区以及在扇 区中的偏移量。在具体实现中,所述位置点可以包括主位置点,所述位置点预置模块具体可以包 括以下子模块簇链获取子模块,用于依据FAT表获取当前文件的簇链;第一主位置点确定子模块,用于按照预设的间隔簇数将当前文件的簇链等分成N 个区间,在每个区间中确定一个主位置点,并将该主位置点对应的簇地址及文件指针位置 写入位置点列表中,其中,所述N为正整数。作为本发明的一种优选实施例,所述位置点还可以包括子位置点,所述文件指针 定位的装置还可以包括如下模块子位置点设置模块,用于将定位到的目标文件指针位置及对应的簇地址,作为子 位置点的信息写入位置点列表中。为进一步提高seek操作的效率,保证子位置点总是对应最近几次seek到的文 件指针位置,在本发明的一种优选实施例中,所述文件指针定位的装置还可以包括如下模 块子位置点替换模块,用于若所述目标文件指针位置,与在先记录的最接近子位置 点相比超出一定距离范围,则用所述目标文件指针位置及对应的簇地址,替换位置点列表 中所述在先记录的子位置点信息。作为本发明的另一种优选实施例中,所述文件指针定位的装置还可以包括以下模 块第二定位模块,用于在预置的位置点列表中没有在所述目标文件指针位置之前的 位置点时,从当前文件的起始簇地址开始,定位所述目标文件指针的位置。在这种情况下,所述位置点预置模块还可以通过以下子模块设置主位置点第二主位置点确定子模块,用于在从当前文件的起始簇地址开始,定位目标文件 指针的位置的过程中,若当前定位到的簇地址及文件指针位置满足主位置点判断条件且未 记录在位置点列表中,则将当前簇地址及文件指针位置写入位置点列表中;所述主位置点 判断条件为,对应于按照预设的间隔簇数确定的簇地址及文件指针位置。在实际中,所述位置点列表可以设置在内存中。对于装置实施例而言,由于其与前述的方法实施例基本相似,所以描述的比较简 单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。
本发明可用于众多通用或专用的计算系统环境或配置中。例如多处理器系统、服 务器、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。以上对本发明所提供的一种文件指针定位的方法及一种文件指针定位的装置进 行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人 员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明 书内容不应理解为对本发明的限制。
权利要求
一种文件指针定位的方法,其特征在于,包括依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;从所述位置点的簇地址开始,定位所述目标文件指针的位置。
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所述的装置,其特征在于,所述位置点列表存在内存中。
全文摘要
本发明提供了一种文件指针定位的方法,包括依据需要定位的目标文件指针位置,在预置的位置点列表中,查找在该目标文件指针位置之前最接近的位置点;所述位置点具有对应的簇地址及文件指针位置信息;从所述位置点的簇地址开始,定位所述目标文件指针的位置。本发明可以提高文件指针定位操作的效率。
文档编号G06F17/30GK101882153SQ20101020321
公开日2010年11月10日 申请日期2010年6月10日 优先权日2010年6月10日
发明者孙蕾 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1