一种目录查询方法、系统及电子设备和存储介质技术方案

技术编号:21627624 阅读:24 留言:0更新日期:2019-07-17 10:41
本申请公开了一种目录查询方法、系统及一种电子设备和计算机可读存储介质,该方法包括:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。本申请提供的目录查询方法,引入一个线程池,该线程池具备可以配制的线程数量,在打开目录操作中采用了线程池实现读取目录项和读取目录项元数据的并发操作。由此可见,本申请提供的目录查询方法,提高了打开目录操作速度,从而提高服务器响应速度。

A Catalog Query Method, System and Electronic Equipment and Storage Media

【技术实现步骤摘要】
一种目录查询方法、系统及电子设备和存储介质
本申请涉及计算机
,更具体地说,涉及一种目录查询方法、系统及一种电子设备和一种计算机可读存储介质。
技术介绍
SMB是一个网络文件共享协议,它允许应用程序和终端用户从远端的文件服务器访问文件资源。通过SMB协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。客户端与服务器连接成功后,可以发送SMB命令到服务器上,从而客户端能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。在SMB协议中当客户端打开一个目录时,需要展示出目录中所有的目录项,以及各个目录项的元数据属性信息。服务器收到查询目录请求后将打开这个目录,逐个读取这个目录下的目录项和每个目录项的元数据,然后分批次格式化打包返回给客户端。由于读取目录项和读取目录项元数据是串行的,当遇到一个目录项超过10万的超大目录时,客户端完全打开这个目录非常耗时,这极大的影响了用户体验。因此,如何提高目录查询速度是本领域技术人员需要解决的技术问题。
技术实现思路
本申请的目的在于提供一种目录查询方法、系统及一种电子设备和一种计算机可读存储介质,提高了目录查询速度。为实现上述目的,本申请提供了一种目录查询方法,包括:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。其中,利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据,包括:S1:判断当前目录项是否需要展示元数据;若是,则进入S2,若否,则进入S3;S2:利用所述线程池中除所述主线程之外的空闲线程读取所述当前目录项的元数据,并进入S3;S3:判断是否存在下一个目录项;若是,则将下一个目录项作为所述当前目录项,并重新进入S1;若否,则执行所述根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包的步骤。其中,所述元数据包括所述目录项的文件大小、创建时间和文件权限中的任一项或任几项的组合。其中,根据所有所述目录项和所有所述元数据构建数据包,包括:根据所有所述目录项构建所述数据包,并通过回调函数将所有所述目录项的元数据按照预设格式添加至所述数据包中。为实现上述目的,本申请提供了一种目录查询系统,包括:第一读取模块,用于当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;第二读取模块,用于利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;返回模块,用于根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。其中,所述第二读取模块包括:第一判断单元,用于判断当前目录项是否需要展示元数据;若是,则启动读取单元的工作流程,若否,则启动第二判断单元的工作流程;所述读取单元,用于利用所述线程池中除所述主线程之外的空闲线程读取所述当前目录项的元数据,并启动所述第二判断单元的工作流程;所述第二判断单元,用于判断是否存在下一个目录项;若是,则将下一个目录项作为所述当前目录项,并重新启动所述第一判断单元的工作流程;若否,则启动所述返回模块的工作流程。其中,所述元数据包括所述目录项的文件大小、创建时间和文件权限中的任一项或任几项的组合。其中,所述返回模块具体为根据所有所述目录项构建所述数据包,通过回调函数将所有所述目录项的元数据按照预设格式添加至所述数据包中,并返回所述数据包的模块。为实现上述目的,本申请提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述目录查询方法的步骤。为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述目录查询方法的步骤。通过以上方案可知,本申请提供的一种目录查询方法,包括:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。本申请提供的目录查询方法,引入一个线程池,该线程池具备可以配制的线程数量,在打开目录操作中采用了线程池实现读取目录项和读取目录项元数据的并发操作。由此可见,本申请提供的目录查询方法,提高了打开目录操作速度,从而提高服务器响应速度。本申请还公开了一种目录查询系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1为根据一示例性实施例示出的一种目录查询方法的流程图;图2为根据一示例性实施例示出的另一种目录查询方法的流程图;图3为根据一示例性实施例示出的一种目录查询系统的结构图;图4为根据一示例性实施例示出的一种电子设备的结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例公开了一种目录查询方法,提高了目录查询速度。参见图1,根据一示例性实施例示出的一种目录查询方法的流程图,如图1所示,包括:S101:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;本实施例的执行主体为服务器,用于接收到客户端的查询请求,并向客户端返回目录查询结果。该查询请求至少包括目标目录在服务器中的存储地址。在本实施例中引入一个线程池,该线程池具备可以配制的线程数量,线程池中的主线程用于根据查询请求中的存储地址在服务器中读取目标目录中的目录项。S102:利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;在具体实施中,利用线程池中除主线程之外的空闲线程读取每个目录项的元数据,此处的元数据可以包括目录项的文件大小、创建时间和文件权限等。可以理解的是,对于不同目录项的元数据可以利用不同的线程并行读取,每个目录项的元数据为异步读取,通过线程池中的多个线程并发处理,提高整体处理速度。S103:根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。在具体实施中,当所有目录项的元数据全部读取完成后,根据目录项和所有的元数据构建数据包,比将该数据包返回值客户端,客户端解析该数据包并展示给用户。本申请实施例提供的目录查询方法,引入一个线程池,该线程池具备可以配制的线程数量,在打开目录操作中采用了线程池实现读取目录项和读本文档来自技高网...

【技术保护点】
1.一种目录查询方法,其特征在于,包括:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。

【技术特征摘要】
1.一种目录查询方法,其特征在于,包括:当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据;根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包。2.根据权利要求1所述目录查询方法,其特征在于,利用所述线程池中除所述主线程之外的空闲线程读取每个所述目录项的元数据,包括:S1:判断当前目录项是否需要展示元数据;若是,则进入S2,若否,则进入S3;S2:利用所述线程池中除所述主线程之外的空闲线程读取所述当前目录项的元数据,并进入S3;S3:判断是否存在下一个目录项;若是,则将下一个目录项作为所述当前目录项,并重新进入S1;若否,则执行所述根据所有所述目录项和所有所述元数据构建数据包,并返回所述数据包的步骤。3.根据权利要求1所述目录查询方法,其特征在于,所述元数据包括所述目录项的文件大小、创建时间和文件权限中的任一项或任几项的组合。4.根据权利要求1至3中任一项所述目录查询方法,其特征在于,根据所有所述目录项和所有所述元数据构建数据包,包括:根据所有所述目录项构建所述数据包,并通过回调函数将所有所述目录项的元数据按照预设格式添加至所述数据包中。5.一种目录查询系统,其特征在于,包括:第一读取模块,用于当接收到目标目录的查询请求时,利用线程池中的主线程读取所述目标目录中的每个目录项;第二读取模块,用于利用所述线程池中除所...

【专利技术属性】
技术研发人员:楚光庆
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏,32

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

1