基于邻接表的文件查询方法、装置及计算机设备制造方法及图纸

技术编号:38040253 阅读:8 留言:0更新日期:2023-06-30 11:06
本申请提供的基于邻接表的文件查询方法、装置及计算机设备,当用户需要查询相关文件时,可以先获取待查询的目标文件对应的文件完整路径,并确定该文件完整路径的路径层级,若路径层级大于预设层级阈值,可以将文件完整路径拆分为第一子路径和第二子路径,并按照预设的文件查询规则分别对第一子路径和第二子路径进行查询,并得到第一子路径下查询到的第一文件对象以及第二子路径下查询到的文件对象列表,接着本申请可以从文件对象列表中查找与第一文件对象对应的第二文件对象,并根据第二文件对象从数据库中获取目标文件,从而有效提高查询定位效率,减少文件查询耗时,提高用户体验。体验。体验。

【技术实现步骤摘要】
基于邻接表的文件查询方法、装置及计算机设备


[0001]本申请涉及软件开发
,尤其涉及一种基于邻接表的文件查询方法、装置及计算机设备。

技术介绍

[0002]树形结构是一种层次的嵌套结构,一个树形结构的外层和内层有相似的结构,所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构,树形结构的数据元素之间存在着“一对多”的树形关系的数据结构,是一类重要的非线性数据结构。在树形结构中,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点,叶子节点没有后续节点,其余每个节点的后续节点数可以是一个也可以是多个。
[0003]目前市面上主要使用邻接表作为树形结构存储模型,对于邻接表存储设计的网盘业务来说,当用户在前端传入一个文件完整路径后,需要根据文件完整路径来快速定位对应的文件或文件夹,并返回当前文件夹下的文件列表,但当文件完整路径中的路径层级越多时,其查询定位效率也越低,耗时也越长。

技术实现思路

[0004]本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中当文件完整路径中的路径层级越多时,其查询定位效率也越低,耗时也越长的技术缺陷。
[0005]本申请提供了一种基于邻接表的文件查询方法,所述方法包括:
[0006]获取待查询的目标文件对应的文件完整路径,并确定所述文件完整路径的路径层级;
[0007]若所述路径层级不大于预设层级阈值,则按照所述文件完整路径中各层路径之间的路径顺序依次进行查询后得到目标文件;
[0008]若所述路径层级大于所述预设层级阈值,则将所述文件完整路径拆分为第一子路径和第二子路径,并按照预设的文件查询规则分别对所述第一子路径和所述第二子路径进行查询,得到所述第一子路径下的第一文件对象和所述第二子路径下的文件对象列表;
[0009]从所述文件对象列表中查找与所述第一文件对象对应的第二文件对象,并根据所述第二文件对象从数据库中获取目标文件。
[0010]可选地,所述按照所述文件完整路径中各层路径之间的路径顺序依次进行查询后得到目标文件,包括:
[0011]按照所述文件完整路径中各层路径之间的路径顺序,从所述文件完整路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID,其中,所述文件完整路径中的首层路径的父文件ID为空;
[0012]基于所述当前路径的路径名称和父文件ID对数据库进行查询操作,并得到所述数据库返回的所述当前路径下的文件对象;
[0013]判断所述当前路径是否为所述文件完整路径中的最后一层路径;
[0014]若是,则将所述当前路径下的文件对象作为目标文件;
[0015]否则,将所述当前路径的下一层路径替换为当前路径后,返回执行从所述文件完整路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID的步骤。
[0016]可选地,所述判断所述当前路径是否为所述文件完整路径中的最后一层路径之前,还包括:
[0017]判断所述当前路径的文件对象是否为空;
[0018]若为空,则停止查询操作;
[0019]若不为空,则执行判断所述当前路径是否为所述文件完整路径中的最后一层路径的步骤。
[0020]可选地,所述第一子路径包含所述文件完整路径中的首层路径,所述第二子路径包含所述文件完整路径中的最后一层路径;
[0021]所述按照预设的文件查询规则分别对所述第一子路径和所述第二子路径进行查询,得到所述第一子路径下的第一文件对象和所述第二子路径下的文件对象列表,包括:
[0022]以所述文件完整路径中的首层路径为所述第一子路径中的首层路径,按照所述第一子路径中各层路径之间的路径顺序依次进行查询后得到所述第一子路径下的第一文件对象;
[0023]以所述文件完整路径中的最后一层路径为所述第二子路径中的首层路径,按照所述第二子路径中各层路径之间的路径顺序从最后一层路径依次往上进行查询后得到所述第二子路径下的文件对象列表。
[0024]可选地,所述按照所述第一子路径中各层路径之间的路径顺序依次进行查询后得到所述第一子路径下的第一文件对象,包括:
[0025]按照所述第一子路径中各层路径之间的路径顺序,从所述第一子路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID,其中,所述第一子路径中的首层路径的父文件ID为空;
[0026]基于所述当前路径的路径名称和父文件ID对数据库进行查询操作,并得到所述数据库返回的所述当前路径下的文件对象;
[0027]判断所述当前路径是否为所述第一子路径中的最后一层路径;
[0028]若是,则将所述当前路径下的文件对象作为所述第一子路径下的第一文件对象;
[0029]否则,将所述当前路径的下一层路径替换为当前路径后,返回执行从所述第一子路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID的步骤。
[0030]可选地,所述按照所述第二子路径中各层路径之间的路径顺序从最后一层路径依次往上进行查询后得到所述第二子路径下的文件对象列表,包括:
[0031]按照所述第二子路径中各层路径之间的路径顺序,从所述第二子路径中获取当前路径的路径名称以及将上一层路径下查询到的文件对象列表中获取的父文件ID作为当前路径的文件ID,其中,所述第二子路径中的首层路径是利用其路径名称对数据库进行查询后得到的文件对象列表;
[0032]根据所述当前路径的路径名称和文件ID对所述数据库进行查询操作,并得到所述
数据库返回的所述当前路径下的文件对象列表;
[0033]判断所述当前路径是否为所述第二子路径中的最后一层路径;
[0034]若是,则将所述当前路径下的文件对象列表作为所述第二子路径下的文件对象列表;
[0035]否则,将所述当前路径的下一层路径替换为当前路径后,返回执行从所述二子路径中获取当前路径的路径名称以及讲上一层路径下查询到的文件对象列表中获取的父文件ID作为当前路径的文件ID的步骤。
[0036]可选地,所述方法还包括:
[0037]若所述第一子路径中的任意一层路径下查询到的第一文件对象为空,或者,所述第二子路径中的任意一层路径下查询到的文件对象列表为空,则停止查询操作。
[0038]可选地,所述第二子路径中的首层路径为所述文件完整路径中的最后一层路径;
[0039]所述从所述文件对象列表中查找与所述第一文件对象对应的第二文件对象,并根据所述第二文件对象从数据库中获取目标文件,包括:
[0040]从所述文件对象列表中获取所述第二子路径中的最后一个路径对应的至少一个父文件ID,以及,从所述第一文件对象中获取其对应的文件ID;
[0041]将各个父文件ID分别与所述文件ID进行比对,并将各个父文件ID中与所述文件ID相同的父文件ID对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于邻接表的文件查询方法,其特征在于,所述方法包括:获取待查询的目标文件对应的文件完整路径,并确定所述文件完整路径的路径层级;若所述路径层级不大于预设层级阈值,则按照所述文件完整路径中各层路径之间的路径顺序依次进行查询后得到目标文件;若所述路径层级大于所述预设层级阈值,则将所述文件完整路径拆分为第一子路径和第二子路径,并按照预设的文件查询规则分别对所述第一子路径和所述第二子路径进行查询,得到所述第一子路径下的第一文件对象和所述第二子路径下的文件对象列表;从所述文件对象列表中查找与所述第一文件对象对应的第二文件对象,并根据所述第二文件对象从数据库中获取目标文件。2.根据权利要求1所述的基于邻接表的文件查询方法,其特征在于,所述按照所述文件完整路径中各层路径之间的路径顺序依次进行查询后得到目标文件,包括:按照所述文件完整路径中各层路径之间的路径顺序,从所述文件完整路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID,其中,所述文件完整路径中的首层路径的父文件ID为空;基于所述当前路径的路径名称和父文件ID对数据库进行查询操作,并得到所述数据库返回的所述当前路径下的文件对象;判断所述当前路径是否为所述文件完整路径中的最后一层路径;若是,则将所述当前路径下的文件对象作为目标文件;否则,将所述当前路径的下一层路径替换为当前路径后,返回执行从所述文件完整路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID的步骤。3.根据权利要求2所述的基于邻接表的文件查询方法,其特征在于,所述判断所述当前路径是否为所述文件完整路径中的最后一层路径之前,还包括:判断所述当前路径的文件对象是否为空;若为空,则停止查询操作;若不为空,则执行判断所述当前路径是否为所述文件完整路径中的最后一层路径的步骤。4.根据权利要求1所述的基于邻接表的文件查询方法,其特征在于,所述第一子路径包含所述文件完整路径中的首层路径,所述第二子路径包含所述文件完整路径中的最后一层路径;所述按照预设的文件查询规则分别对所述第一子路径和所述第二子路径进行查询,得到所述第一子路径下的第一文件对象和所述第二子路径下的文件对象列表,包括:以所述文件完整路径中的首层路径为所述第一子路径中的首层路径,按照所述第一子路径中各层路径之间的路径顺序依次进行查询后得到所述第一子路径下的第一文件对象;以所述文件完整路径中的最后一层路径为所述第二子路径中的首层路径,按照所述第二子路径中各层路径之间的路径顺序从最后一层路径依次往上进行查询后得到所述第二子路径下的文件对象列表。5.根据权利要求4所述的基于邻接表的文件查询方法,其特征在于,所述按照所述第一子路径中各层路径之间的路径顺序依次进行查询后得到所述第一子路径下的第一文件对
象,包括:按照所述第一子路径中各层路径之间的路径顺序,从所述第一子路径中获取当前路径的路径名称以及从上一层路径下查询到的文件对象中获取当前路径的父文件ID,其中,所述第一子路径中的首层路径的父文件ID为空;基于所述当前路径的路径名称和父文件ID对数据库进行查询操作,并得到所述数据库返回的所述当前路径下的文件对象;判断所述当前路径是否为所述第一子路径中的最后一层路径;若是,则将所述当前路径下的文件对象作为所述第一子路径下的第一文件对...

【专利技术属性】
技术研发人员:郭磊王刚丘凌陈天明曹航瑞任伟权白云
申请(专利权)人:天翼数字生活科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1