[发明专利]一种磁盘文件的快速检索方法有效
申请号: | 201310409275.6 | 申请日: | 2013-09-10 |
公开(公告)号: | CN103425802A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 焦瑞莉;汪安春;李廷廷;赵长青 | 申请(专利权)人: | 北京信息科技大学;北京奥米菲克科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 付雷杰;李爱英 |
地址: | 100192 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种磁盘文件的快速检索方法,包括如下步骤:步骤1、申请N个用于存储磁盘中所包含文件信息的内存块;步骤2、将该磁盘目录下所有文件信息存入到N个内存块中;步骤3、将步骤2中遍历得到的每一个文件作为跳表结构中一列中的节点依次插入跳表结构中,建立跳表;步骤4、在跳表中查找磁盘文件:确定比对节点,当比对节点的后向指针指向的节点为空节点或查找节点的值小于比对节点的后向指针指向的节点的值时,将比对节点的下向指针指向的节点更新为比对节点,并与查找节点继续比较;当查找节点的值大于比对节点的后向指针指向的节点的值时,此时将比对节点更新为其后向指针指向的节点,并与查找节点继续比较。 | ||
搜索关键词: | 一种 磁盘 文件 快速 检索 方法 | ||
【主权项】:
一种磁盘文件的快速检索方法,其特征在于,包括如下步骤:步骤1、申请N个内存块,其中每个内存块包括32个数据块,对每一个内存块里的32个数据块,均采用虚拟指针,即该数据块的虚拟指针为所在内存块的块号和在该内存块中的位置,即偏移量;每个数据块中记录磁盘中一个文件信息,该信息包括文件的序号、存储路径、文件名、文件大小以及文件的最后一次访问时间;步骤2、遍历用户需要监测的磁盘目录,将该磁盘目录下所有文件信息按顺序依次存入到步骤1建立的内存块的数据块中,当一个内存块中的全部数据块被占用后,再将该内存块中的最后一个文件信息中的路径和文件名存储到磁盘文件currentdir.dat中,将该内存块中的所有数据追加保存到磁盘文件memsave.bin中;步骤3、建立跳表:S301、跳表结构的创建:在内存中申请M个内存块用来存放跳表结构;然后创建一个具有行数为MAXLEVEL的跳表结构,该跳表结构的第一列中设置MAXLEVEL个头节点,最后一列设置有MAXLEVEL个空节点;其中,跳表行数MAXLEVEL取为lg(N),N为步骤2中遍历得到文件的个数;S302、将步骤2中遍历得到的每一个文件作为跳表结构中一列中的节点依次插入跳表结构中,得到跳表,具体方法如下:A、令跳表结构中每个节点均采用虚拟指针,每个节点的虚拟指针包括后向指针和下向指针,其中任一个节点的后向指针指向跳表结构中该节点所在行向后相邻的节点,任一个节点的下向指针指向跳表结构中该节点所在列向下相邻 的节点;B、从步骤2中的数据块中依次取出文件信息,并将一个文件信息对应一列中的n个节点作为插入的节点,其中n在1和MAXLEVEL之间随机选择;C、当要向跳表结构中插入第一列节点时,将该列节点插入到头节点的后一列,其中n个节点的排列方式为从该列的最后一行依次向上排列;根据插入节点后的跳表结构,更新每个节点的虚拟指针;D、从插入第二列节点开始,针对每一列要插入的节点,首先找到跳表结构中的最后一行的第二个节点,作为对比节点,判断对比节点的值与插入节点的值的大小:如果插入节点的值比对比节点的值小,则将该列插入节点插入对比节点所在列的前一列;如果插入节点的值比对比节点的值大,将对比节点更新为其后向指针所指向的节点,并与插入节点继续比较,直到插入节点的值小于对比节点的值,则将该列插入节点插入对比节点所在列的前一列;根据插入节点后的跳表结构,更新跳表结构中每个节点的虚拟指针;其中,节点的值定义为:该节点所代表文件的文件名对应的字符串的ASCII码值;E、对每一个插入的节点信息进行描述:步骤2中该节点所代表的文件信息所在的内存块的编号、步骤2中该节点所代表的文件信息所在的数据块的偏移量、该节点在跳表内存块中的编号以及该节点的虚拟指针;把每个节点的描述信息存储到对应的数据块中;F、按照上述方法,将步骤2中的遍历到的每一个文件作为一个节点插入到 跳表结构中,生成跳表;G、将跳表存入磁盘文件slsave.bin中;步骤4、在跳表中查找磁盘文件:将要查找的每一个文件作为一个查找节点,在跳表中,除头节点外,将跳表的第一列第一行的节点作为比对节点,判断查找节点的值与比对节点的值的大小:a、如果查找节点的值小于跳表中第一列第一行的比对节点的值,则跳表中找不到该查找节点;b、当比对节点的后向指针指向的节点为空节点或查找节点的值小于比对节点的后向指针指向的节点的值时,将比对节点的下向指针指向的节点更新为比对节点,并与查找节点继续比较;当查找节点的值大于比对节点的后向指针指向的节点的值时,此时将比对节点更新为其后向指针指向的节点,并与查找节点继续比较;c、重复执行步骤b,直到找到与查找节点值相同的节点,返回该节点的描述信息;如果查找节点的值大于跳表中最后一列节点的值,则跳表中找不到该查找节点;根据查找节点的描述信息到磁盘文件currentdir.dat和memsave.bin中调取该文件。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息科技大学;北京奥米菲克科技有限公司,未经北京信息科技大学;北京奥米菲克科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310409275.6/,转载请声明来源钻瓜专利网。
- 上一篇:声屏障螺栓紧固设备
- 下一篇:一种渐进最优的三角网格重复顶点快速去除方法