【技术实现步骤摘要】
一种目录内容的遍历方法
本专利技术涉及文件系统遍历
,更具体的说是涉及一种目录内容的遍历方法。
技术介绍
在对存储介质中数据内容进行处理时,通常会使用文件系统对存储介质中的内容进行组织管理。该组织管理方式通常是按照从根目录到子目录,再到底层文件的方式进行层级管理。当需要查看存储介质中内容时,需要调用文件系统对使用该文件系统方式组织过的数据进行层层解析。当需要遍历某目录下所有的文件或文件夹时,目前常用的技术手段是编写一段查找单层目录下文件或文件夹的程序,再采用程序递归的方式调用该程序。该做法从程序实现上可简洁实现代码,简化程序设计。然而,该实现方式也有较大的弊端,因递归的方式需要进行压栈处理,当需要遍历的文件目录的层级较深时,将会耗费较大的内存资源,尤其当使用内存资源受限的单片机进行文件系统的遍历处理时,难以进行较深层次的目录的枚举,且极易造成系统崩溃。
技术实现思路
针对以上问题,本专利技术的目的在于提供一种目录内容的遍历方法,采用状态机标识各个流程状态的方式,替代原先递归方式,避免 ...
【技术保护点】
1.一种目录内容的遍历方法,其特征在于,包括:/n建立状态机变量和多个记录变量,用于对操作状态进行记录;/n通过路径方式打开待遍历的目录,若打开成功,状态机进入子目录枚举状态,若打开失败,状态机进入失败状态;/n状态机在子目录枚举状态下,打开目录查找当前文件或文件夹,通过比对当前文件或文件夹的操作序号和当前目录下文件或文件夹已遍历的数量,判断当前文件或文件夹是否遍历,若已遍历,状态机返回子目录枚举状态,若未遍历,状态机转换为判断遍历对象属性状态;/n状态机在判断遍历对象属性状态下,判断读到节点位置为文件夹还是文件,若为文件,打开处理后状态机返回子目录枚举状态,若为文件夹,状 ...
【技术特征摘要】
1.一种目录内容的遍历方法,其特征在于,包括:
建立状态机变量和多个记录变量,用于对操作状态进行记录;
通过路径方式打开待遍历的目录,若打开成功,状态机进入子目录枚举状态,若打开失败,状态机进入失败状态;
状态机在子目录枚举状态下,打开目录查找当前文件或文件夹,通过比对当前文件或文件夹的操作序号和当前目录下文件或文件夹已遍历的数量,判断当前文件或文件夹是否遍历,若已遍历,状态机返回子目录枚举状态,若未遍历,状态机转换为判断遍历对象属性状态;
状态机在判断遍历对象属性状态下,判断读到节点位置为文件夹还是文件,若为文件,打开处理后状态机返回子目录枚举状态,若为文件夹,状态机进入打开入口节点状态;
状态机在打开入口节点状态下,打开当前节点位置的文件夹,若打开成功,状态机返回子目录枚举状态,若打开失败,状态机进入失败状态。
2.根据权利要求1所述的目录内容的遍历方法,其特征在于,所述建立状态机变量和多个记录变量具体包括:
建立状态机变量state,用于对当前操作步骤进行记录;
创建变量deep,用于记录当前目录的深度;
创建变量newindex,用于记录当前操作位于当前目录深度下的第几个文件或文件夹;
创建一组变量pathentry[],用于记录每一级目录深度下的入口地址;
创建一组变量pathindex[],用于记录每级深度下,已经遍历过的文件或者文件夹数量。
3.根据权利要求2所述的目录内容的遍历方法,其特征在于,所述状态机在子目录枚举状态下,打开目录查找当前文件或文件夹,比对newindex是否小于当前深度下的pathindex[deep]...
【专利技术属性】
技术研发人员:刘勇,魏兰磊,朱启超,牛余晓,孙翠丽,乔幼芽,王德振,
申请(专利权)人:中孚信息股份有限公司,中孚安全技术有限公司,北京中孚泰和科技发展股份有限公司,南京中孚信息技术有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。