一种目录文件的快速检索方法技术

技术编号:15690963 阅读:50 留言:0更新日期:2017-06-24 03:47
本发明专利技术公开一种目录文件的快速检索方法,设置消息接收模块和线程处理模块,所述检索方法包括如下步骤:步骤1,主进程对根目录地址的下一级进行扫描,查找到目标文件则结束并返回,当发现子目录则向消息接收模块发送特定消息,并将子目录地址传递给消息接收模块;步骤2,消息接收模块接收到特定消息后,创建新线程,并将接收到的子目录地址参数传送至线程处理模块;步骤3,线程处理模块对子目录的下一级进行扫描,若查找到目标文件则将目标文件地址返回给主进程,并结束线程检索方法流程,并释放线程资源;步骤4,重复步骤2‑3,直至查找到目标文件。此种检索方法可充分利用系统的资源与回收,缩短检索/遍历消耗时间。

A fast retrieval method for directory files

The invention discloses a method for fast retrieval of a catalog file, set the message receiving module and thread processing module, wherein the retrieval method comprises the following steps: Step 1, the main process of the root directory. The next level is scanned to find the target and return to the end of the file, when the sub directory is to send a message receiving module a specific message, and the sub directory address passed to the message receiving module; step 2, the message receiving module receives a specific message, create a new thread, and will receive the sub directory address parameter is transmitted to the thread processing module; step 3, the thread processing module subdirectory under a scanning, if find the target the target file file address back to the main process, and the end of the thread retrieval process, and thread release resources; step 4, repeat steps 2 and 3 until, to find Object file. This retrieval method can make full use of system resources and recovery, and shorten the time consumed by retrieval / traversal.

【技术实现步骤摘要】
一种目录文件的快速检索方法
本专利技术属于信息检索
,特别涉及一种基于多线程技术的目录文件检索方法。
技术介绍
目前,随着电子技术的飞速发展,办公往往不可能脱离电脑,我们通常需要保留重要的文件,书写记录显然是耗时耗力的,电脑便成为了我们日常生活中存储文件的重要容器。当今,随着文件规模的壮大,人们已经不再满足于将文件存储在本地电脑上(受存储空间的限制),于是,各类网络文档管理系统层出不穷。为了提高企业(单位)员工的工作效率和信息安全,大部分企业(单位)都对员工的办公文件进行一定的管控,不可避免地会需要将本地终端文件上传/备份到服务器,这就意味着需要有一个存放大量文件的文件仓库。于是,为了满足从一个复杂目录的文件仓库中检索或遍历文件的方便快速,我们通常想尽办法去提高文件的检索效率,简而言之是为了能够对于在一个无序的文件仓库中的操作尽可能地减少所花费的时间。通常,当我们试图检索/遍历一个目录的时候,最开始且最低效的做法是定义一个通过目录参数查找下级子目录和文件的递归方法,这种方法无法充分地利用系统资源且无法从细节处提升一定的效率,之后,有人专利技术了多线程的使用,意味着电脑程序可以同步进行多件事,这大大提高了程序的工作效率以及实现方法的开拓。我们不禁想到多线程技术可以使文件检索/遍历的效率大幅提升,但是如何最大化地利用多线程的优势,最大地提升文件系统的检索/遍历效率,已经成为当前重要的研究方向。对于一个多层级的复杂目录结构,现有方案是预先创建好固定数目的线程池,扫描顶层目录的下一级目录后,将扫描到的子目录作为子任务投递到线程池中某个空闲的线程中,进行任务目录(上级扫描到的子目录)的文件扫描及再次扫描到子目录进行重复投递处理。现有方案具有以下不足:(1)此方法线程不能及时结束并回收内存资源。(2)此方法线程数量固定,不能很好地处理目录层次极其复杂的情况,例如当有10个线程要处理11个任务目录时,就会出现一个任务需要等待。基于以上分析,现有的检索方法效率低,有待改进,本案由此产生。
技术实现思路
本专利技术的目的,在于提供一种目录文件的快速检索方法,其可充分利用系统的资源与回收,缩短检索/遍历消耗时间。为了达成上述目的,本专利技术的解决方案是:一种目录文件的快速检索方法,设置消息接收模块和线程处理模块,所述检索方法包括如下步骤:步骤1,主进程对根目录地址的下一级进行扫描,查找到目标文件则结束并返回,当发现子目录则向消息接收模块发送特定消息,并将子目录地址传递给消息接收模块;步骤2,消息接收模块接收到特定消息后,创建新线程,并将接收到的子目录地址参数传送至线程处理模块;步骤3,线程处理模块对子目录的下一级进行扫描,若查找到目标文件则将目标文件地址返回给主进程,并结束线程检索方法流程,并释放线程资源;步骤4,重复步骤2-3,直至查找到目标文件。上述步骤1的详细内容是,主进程以根目录地址为参数对目标目录地址的下一级进行扫描,若查找到目标文件则将目标文件地址作为方法函数返回值返回,结束检索流程;若没有找到目标文件,则将每次查找到的子目录Ai循环向消息接收模块发送特定消息,同时将查找到的子目录Ai地址参数传送至消息接收模块,其中,i=1,2,…,n,且A1-An为目录标识,n为根目录下一级的目录节点数量。上述步骤2中,消息接收模块接收到特定消息后,从缓存获取一块内存块创建新线程并得到相应的线程号。上述步骤3中,若线程处理模块查找到目标文件,则将目标文件地址存入公共变量返回给主进程。上述步骤3中,若线程处理模块未查找到目标文件,则将每次查找到的子目录Bj循环向消息接收模块发送特定消息,同时将查找到的子目录Bj的地址参数传送至消息接收模块,其中,j=1,2,…,m,且B1-Bm为目录标识,m为该子目录下一级的目录节点数量。上述步骤4中,消息接收模块从缓存获取一块内存块创建新线程并得到相应的线程号,将接收到的子目录Bj地址参数传送至线程处理模块,重复步骤2-3,直至查找到目标文件,结束检索流程并返回。上述步骤3中,当子目录的下一级扫描完毕后,结束扫描,释放线程资源。采用上述方案后,本专利技术基于多线程技术而产生,具有如下特点:(1)本专利技术具有简易性,不需要对任务队列或栈进行管理;(2)本专利技术具有灵活性,可根据具体需要的线程数目进行创建,线程为一次性,用完即释放;(3)本专利技术适用性较高,对于不同规模的文件库系统的规模具有很好的适应性,对多级目录和单级目录都有很好的时效性。附图说明图1是本专利技术的流程图。具体实施方式以下将结合附图,对本专利技术的技术方案进行详细说明。如图1所示,本专利技术提供一种目录文件的快速检索方法,设置消息接收模块和线程处理模块,所述检索方法包括如下步骤:步骤1,主进程(当前程序进程)自定义方法函数,以根目录地址为参数对目标目录地址的下一级进行扫描,若查找到目标文件则将目标文件地址作为方法函数返回值返回,告知查询人查询结果并结束检索流程;若没有找到目标文件,则将每次查找到的子目录Ai(i=1,2,…,n,A1-An为目录标识,n为根目录下一级的目录节点数量)循环向消息接收模块发送特定消息,同时将查找到的子目录Ai地址参数传送至消息接收模块;步骤2,消息接收模块接收到特定消息后,从缓存获取一块内存块创建新线程并得到相应的线程号,并将接收到的子目录地址参数传送至该线程处理模块;步骤3,线程处理模块将子目录Ai地址作为目标地址作为参数,扫描An的下一级子文件和目录,若查找到目标文件则将目标文件地址存入公共变量返回给主进程,并结束线程检索方法流程,并释放线程资源;若没发现目标文件,则将每次查找到的子目录Bj(j=1,2,…,m,B1-Bm为目录标识,m为该子目录下一级的目录节点数量)循环向消息接收模块发送特定消息,同时将查找到的子目录Bj的地址参数传送至消息接收模块;下一级子文件和目录扫描完毕后,结束对目标地址参数目录Ai的扫描,释放线程资源;步骤4,消息接收模块从缓存获取一块内存块创建新线程并得到相应的线程号,将接收到的子目录Bj地址参数传送至该线程处理模块,重复步骤2-3,直至查找到目标文件,结束检索流程将结果正确地返回给查询人。以上实施例仅为说明本专利技术的技术思想,不能以此限定本专利技术的保护范围,凡是按照本专利技术提出的技术思想,在技术方案基础上所做的任何改动,均落入本专利技术保护范围之内。本文档来自技高网
...
一种目录文件的快速检索方法

【技术保护点】
一种目录文件的快速检索方法,其特征在于:设置消息接收模块和线程处理模块,所述检索方法包括如下步骤:步骤1,主进程对根目录地址的下一级进行扫描,查找到目标文件则结束并返回,当发现子目录则向消息接收模块发送特定消息,并将子目录地址传递给消息接收模块;步骤2,消息接收模块接收到特定消息后,创建新线程,并将接收到的子目录地址参数传送至线程处理模块;步骤3,线程处理模块对子目录的下一级进行扫描,若查找到目标文件则将目标文件地址返回给主进程,并结束线程检索方法流程,并释放线程资源;步骤4,重复步骤2‑3,直至查找到目标文件。

【技术特征摘要】
1.一种目录文件的快速检索方法,其特征在于:设置消息接收模块和线程处理模块,所述检索方法包括如下步骤:步骤1,主进程对根目录地址的下一级进行扫描,查找到目标文件则结束并返回,当发现子目录则向消息接收模块发送特定消息,并将子目录地址传递给消息接收模块;步骤2,消息接收模块接收到特定消息后,创建新线程,并将接收到的子目录地址参数传送至线程处理模块;步骤3,线程处理模块对子目录的下一级进行扫描,若查找到目标文件则将目标文件地址返回给主进程,并结束线程检索方法流程,并释放线程资源;步骤4,重复步骤2-3,直至查找到目标文件。2.如权利要求1所述的一种目录文件的快速检索方法,其特征在于:所述步骤1的详细内容是,主进程以根目录地址为参数对目标目录地址的下一级进行扫描,若查找到目标文件则将目标文件地址作为方法函数返回值返回,结束检索流程;若没有找到目标文件,则将每次查找到的子目录Ai循环向消息接收模块发送特定消息,同时将查找到的子目录Ai地址参数传送至消息接收模块,其中,i=1,2,…,n,且A1-An为目录标识,n为根目录下一级的目录节点数量。3.如权利要求1...

【专利技术属性】
技术研发人员:涂高元张祺文邱志斌郭永兴陆云燕张艳蓉
申请(专利权)人:厦门天锐科技股份有限公司
类型:发明
国别省市:福建,35

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

1