一种具有目录忽略机制的文件遍历方法及系统技术方案

技术编号:33243054 阅读:77 留言:0更新日期:2022-04-27 17:48
本发明专利技术提供了一种具有目录忽略机制的文件遍历方法及系统,方法包括获取目标遍历目录中的元素,判断所述元素的类型;当所述元素为文件时,执行文件遍历业务;当所述元素为目录时,将当前目录的路径与预设忽略目录的路径进行匹配,忽略对匹配成功目录的遍历。本发明专利技术通过对目标遍历目录中的元素类型进行区分,对于文件类型直接进行文件遍历业务,对于目录类型,在递归处理过程中仅比对路径字符串即可,改变了传统的递归方式,且由于本发明专利技术实施例中对忽略目录的匹配仅发生在遍历阶段递归调用时,不必对每一个被遍历到的文件进行路径匹配,对系统性能消耗极小,且大幅提高遍历效率。且大幅提高遍历效率。且大幅提高遍历效率。

【技术实现步骤摘要】
一种具有目录忽略机制的文件遍历方法及系统


[0001]本专利技术涉及文件遍历
,尤其是一种具有目录忽略机制的文件遍历方法及系统。

技术介绍

[0002]硬盘文件遍历,是对一类安全软件行为的统称。这种行为可能是:为了实现全局应用程序启动控制而进行的全盘文件哈希值计算,或者为了实现对全盘重要文件完整性进行监测而进行的全盘文件哈希值计算。这些行为的共同点是,需要对某个操作系统中整个硬盘或者部分目录下全部文件进行处理。在下文中,这一类的行为统称“文件遍历业务”。文件遍历业务是本专利技术的“服务对象”,但不是本专利技术的关注点。
[0003]这一遍历过程的耗时,可能会因系统硬件的配置落后等因素而变得十分冗长。同时,由于客户环境的因素,硬盘上可能存在一些不需要执行“文件遍历业务”的目录。因此,结合这两种情况,有必要在执行文件遍历时允许用户对遍历过程进行“指导”,从而允许一部分目录得以跳过遍历业务。这些目录称作忽略目录。
[0004]目前大多数的文件系统遍历过程使用的是递归迭代器,以std::filesystem::recursive_本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种具有目录忽略机制的文件遍历方法,其特征是,所述方法包括以下步骤:获取目标遍历目录中的元素,判断所述元素的类型;当所述元素为文件时,执行文件遍历业务;当所述元素为目录时,将当前目录的路径与预设忽略目录的路径进行匹配,忽略对匹配成功目录的遍历。2.根据权利要求1所述具有目录忽略机制的文件遍历方法,其特征是,在所述步骤之前,还包括:构建忽略目录,所述忽略目录中包括固定忽略目录和用户输入的自定义忽略目录。3.根据权利要求2所述具有目录忽略机制的文件遍历方法,其特征是,所述忽略目录的构建过程具体为:获取固定忽略目录或自定义忽略目录对应的路径字符串;判断当前操作系统的类型是否为Windows系统;若是,则将所述路径字符串中的字母进行大小写归一化,将反斜杠替换为斜杠,若路径字符串以斜杠结尾,则去掉末尾斜杠,将当前路径字符串加入忽略目录;若否,则判断路径字符串是否以斜杠结尾,若是则去掉末尾斜杠,将当前路径字符串加入忽略目录,若否则直接将当前路径字符串加入忽略目录。4.根据权利要求1所述具有目录忽略机制的文件遍历方法,其特征是,所述将当前目录的路径与预设忽略目录的路径进行匹配的具体过程为:将当前目录的路径字符串进行预处理,使其格式与忽略目录一致;在该忽略目录中查找是否存在当前目录的路径字符串;若不存在,则提取当前目录的中间子目录,重复上述两步的操作,至当前目录下的各子目录均与忽略目录匹配。5.根据权利要求1所述具有目录忽略机制的文件遍历方法,其特征是,所述目标遍历目录中的元素通过std::filesystem::directory_iterator非递归迭代器获取。6.一种具有目录忽略机制的文件遍历系统,其特征是,所述系统包括:元素分析单元,获取目标遍历目录中的元素,判断所述元素的类型...

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

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

1