基于遍历算法的文件比对方法及其装置、电子设备与流程

未命名 07-29 阅读:95 评论:0


1.本发明涉及金融科技领域及其他相关技术领域,具体而言,涉及一种基于遍历算法的文件比对方法及其装置、电子设备。


背景技术:

2.在文件传输和应用时,由于文件版本的更新或传输过程的不确定性因素,可能造成现有文件与原始文件之间存在差异。
3.相关技术中,对于文件夹的或文本的比较,一般是基于二进制、特定规则等进行对比,对于传统的压缩文件,如zip、jar等压缩文件在解压缩过程中也可以做到内部文件的比对,并可以添加规则过滤特定文件的比对,但通过现有的比对工具对文件夹进行比较时,需要手动定位到待比对的文件夹,通过人工操作才能实现文件的比对,仅适用于数量较少的文件之间的比对,不适用于结构复杂且大批量的文件比对。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种基于遍历算法的文件比对方法及其装置、电子设备,以至少解决相关技术中通过人工操作进行文件比对的方法,不适用于结构复杂且大批量的文件比对的技术问题。
6.根据本发明实施例的一个方面,提供了一种基于遍历算法的文件比对方法,包括:获取第一待比对文件包和第二待比对文件包的文件路径,其中,所述第一待比对文件包为待检查的文件包,所述第二待比对文件包为所述第一待比对文件包对应的参考文件包;采用遍历算法对所述文件路径下的所述第一待比对文件包和所述第二待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合和所述第二待比对文件包中各文件的第二文件信息集合;比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果;在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
7.可选地,采用遍历算法对所述文件路径下的所述第一待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合的步骤,包括:对所述第一待比对文件包进行扫描,根据扫描得到的文件目录建立第一节点映射表,其中,所述第一节点映射表包括各文件包和节点集合中各节点之间的映射关系,所述节点用于指示需要进行遍历的文件包的位置,所述节点集合中的节点至少包括:根节点;基于所述第一节点映射表从所述根节点开始对所述第一待比对文件包进行遍历,并判断每个所述节点的节点类型;在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第一目标文件集合,所述第一目标文件集合中存储所述第一待比对文件包下需要进行差异比对的多个第一目标文件;基于遍历得到的所述第一目标文件集合确定与所述第一待比对文件包对应的所述第一文件信
息集合。
8.可选地,基于遍历得到的所述第一目标文件集合确定与所述第一待比对文件包对应的所述第一文件信息集合的步骤,包括:解析所述第一目标文件集合,得到每个第一目标文件的文件类型;基于所述文件类型对每个所述第一目标文件进行预处理;获取预处理后的所述第一目标文件的文件路径和文件名,并将所述文件路径和所述文件名作为第一主键信息,得到第一主键信息集合;获取预处理后的所述第一目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第一校对值,得到第一校对值集合;将所述第一主键信息集合和所述第一校对值集合存储在所述第一文件信息集合。
9.可选地,采用遍历算法对所述文件路径下的所述第二待比对文件包进行遍历,生成所述第二待比对文件包中各文件的第二文件信息集合的步骤,包括:对所述第二待比对文件包进行扫描,根据扫描得到的文件目录建立第二节点映射表,其中,所述第二节点映射表包括文件包和节点的映射关系,其中,节点用于指示需要进行遍历的文件包;基于所述第二节点映射表从根节点开始对所述第二待比对文件包进行遍历,并判断每个节点的节点类型;在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第二目标文件集合,所述第二目标文件集合中存储所述第二待比对文件包下需要进行差异比对的多个第二目标文件;基于遍历得到的所述第二目标文件集合确定与所述第二待比对文件包对应的所述第二文件信息集合。
10.可选地,基于遍历得到的所述第二目标文件集合确定与所述第二待比对文件包对应的所述第二文件信息集合的步骤,包括:解析所述第二目标文件集合,判断每个第二目标文件的文件类型;基于所述文件类型对每个所述第二目标文件进行预处理;获取预处理后的所述第二目标文件的文件路径和文件名,并将所述文件路径和所述文件名作为第二主键信息,得到第二主键信息集合;获取预处理后的所述第二目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第二校对值,得到第二校对值集合;将所述第二主键信息集合和所述第二校对值集合存储在所述第二文件信息集合。
11.可选地,比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果的步骤,包括:比较所述第一文件信息集合中的第一主键信息与所述第二文件信息集合中的第二主键信息;在所述第一主键信息与所述第二主键信息相同的情况下,将所述第一主键信息对应的第一校对值与所述第二主键信息对应的第二校对值进行比较,得到所述文件比对结果。
12.可选地,在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息的步骤,包括:在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,确认比对的两个文件组成的文件对之间存在差异;对存在差异的文件对进行标记,并基于存在差异的文件对的文件路径、文件名、文件大小和文件哈希值生成存在差异的文件对的差异信息。
13.可选地,在生成存在差异的文件对的差异信息之后,包括:在所述差异信息指示所述第一待比对文件包中存储有所述第二待比对文件包中不存在的文件的情况下,对所述第一待比对文件包中的文件进行文件删除操作;在所述差异信息指示所述第二待比对文件包中存储有所述第一待比对文件包中不存在文件的情况下,对所述第一待比对文件包中的文
件进行文件新增操作;在所述差异信息指示所述第一待比对文件包中文件的第一校对值与所述第二待比对文件包中文件的第二校对值不相同的情况下,对所述第一待比对文件包中的文件进行文件修改操作。
14.根据本发明实施例的另一方面,还提供了一种基于遍历算法的文件比对装置,包括:获取单元,用于获取第一待比对文件包和第二待比对文件包的文件路径,其中,所述第一待比对文件包为待检查的文件包,所述第二待比对文件包为所述第一待比对文件包对应的参考文件包;遍历单元,用于采用遍历算法对所述文件路径下的所述第一待比对文件包和所述第二待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合和所述第二待比对文件包中各文件的第二文件信息集合;比对单元,用于比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果;生成单元,用于在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
15.可选地,所述遍历单元包括:第一扫描模块,用于对所述第一待比对文件包进行扫描,根据扫描得到的文件目录建立第一节点映射表,其中,所述第一节点映射表包括各文件包和节点集合中各节点之间的映射关系,所述节点用于指示需要进行遍历的文件包的位置,所述节点集合中的节点至少包括:根节点;第一遍历模块,用于基于所述第一节点映射表从所述根节点开始对所述第一待比对文件包进行遍历,并判断每个所述节点的节点类型;第一判断模块,用于在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第一目标文件集合,所述第一目标文件集合中存储所述第一待比对文件包下需要进行差异比对的多个第一目标文件;第一确定模块,用于基于遍历得到的所述第一目标文件集合确定与所述第一待比对文件包对应的所述第一文件信息集合。
16.可选地,所述第一确定模块包括:第一解析子模块,用于解析所述第一目标文件集合,得到每个第一目标文件的文件类型;第一处理子模块,用于基于所述文件类型对每个所述第一目标文件进行预处理;第一获取子模块,用于获取预处理后的所述第一目标文件的文件路径和文件名,并将所述文件路径和文件名作为第一主键信息,得到第一主键信息集合;第二获取子模块,用于获取预处理后的所述第一目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第一校对值,得到第一校对值集合;第一存储子模块,用于将所述第一主键信息集合和所述第一校对值集合存储在所述第一文件信息集合。
17.可选地,所述遍历单元还包括:第二扫描模块,用于对所述第二待比对文件包进行扫描,根据扫描得到的文件目录建立第二节点映射表,其中,所述第二节点映射表包括文件包和节点的映射关系,其中,节点用于指示需要进行遍历的文件包;第二遍历模块,用于基于所述第二节点映射表从根节点开始对所述第二待比对文件包进行遍历,并判断每个节点的节点类型;第二判断模块,用于在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第二目标文件集合,所述第二目标文件集合中存储所述第二待比对文件包下需要进行差异比对的多个第二目标文件;第二确定模块,用于基于遍历得到的所述第二目标文件集合确定与所述第二待比对文件包对应的所述第二文件信息集合。
18.可选地,所述第二确定模块包括:第二解析子模块,用于解析所述第二目标文件集
合,判断每个第二目标文件的文件类型;第二处理子模块,用于基于所述文件类型对每个所述第二目标文件进行预处理;第三获取子模块,用于获取预处理后的所述第二目标文件的文件路径和文件名,并将所述文件路径和所述文件名作为第二主键信息,得到第二主键信息集合;第四获取子模块,用于获取预处理后的所述第二目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第二校对值,得到第二校对值集合;第二存储子模块,用于将所述第二主键信息集合和所述第二校对值集合存储在所述第二文件信息集合。
19.可选地,所述比对单元包括:第一比较模块,用于比较所述第一文件信息集合中的第一主键信息与所述第二文件信息集合中的第二主键信息;第二比较模块,用于在所述第一主键信息与所述第二主键信息相同的情况下,将所述第一主键信息对应的第一校对值与所述第二主键信息对应的第二校对值进行比较,得到所述文件比对结果。
20.可选地,所述生成单元包括:第一确认模块,用于在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,确认比对的两个文件组成的文件对之间存在差异;第一生成模块,用于对存在差异的文件对进行标记,并基于存在差异的文件对的文件路径、文件名、文件大小和文件哈希值生成存在差异的文件对的差异信息。
21.可选地,所述基于遍历算法的文件比对装置包括:第一删除模块,用于在所述差异信息指示所述第一待比对文件包中存储有所述第二待比对文件包中不存在的文件的情况下,对所述第一待比对文件包中的文件进行文件删除操作;第一新增模块,用于在所述差异信息指示所述第二待比对文件包中存储有所述第一待比对文件包中不存在文件的情况下,对所述第一待比对文件包中的文件进行文件新增操作;第一修改模块,用于在所述差异信息指示所述第一待比对文件包中文件的第一校对值与所述第二待比对文件包中文件的第二校对值不相同的情况下,对所述第一待比对文件包中的文件进行文件修改操作。
22.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项基于遍历算法的文件比对方法。
23.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项基于遍历算法的文件比对方法。
24.在本公开中,采用以下步骤:先获取第一待比对文件包和第二待比对文件包的文件路径,再采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合,然后比对第一文件信息集合和第二文件信息集合,得到文件比对结果,最后在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
25.在本公开中,在进行文件比对时,针对文件包内部结构复杂数量众多的文件,通过遍历算法对待比对的两个文件包同时进行遍历,得到文件信息集合,通过对文件信息集合进行比对得到文件比对结果,支持大批量文件的快速比对,并输出差异信息集合,使得结果清晰直观,另外通过输入文件路径自动进行文件包比对,无需人工操作,提升了比对效率,
进而解决了相关技术中通过人工操作进行文件比对的方法,不适用于结构复杂且大批量的文件比对的技术问题。
附图说明
26.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
27.图1是根据本发明实施例的一种可选的基于遍历算法的文件比对方法的流程图;
28.图2是根据本发明实施例的一种可选的文件包差异比对方法的流程图;
29.图3是根据本发明实施例的一种可选的基于遍历算法的文件比对装置的示意图;
30.图4是根据本发明实施例的一种基于遍历算法的文件比对方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
31.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
32.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
34.zip,一种常见的压缩文件格式;
35.jar,一种常见的压缩文件格式;
36.深度(广度)优先遍历,一种树状数据结构的遍历算法;
37.map集合,程序中存储数据的一种键值对集合,一个key值对应一个value;
38.多线程,通过程序实现多个线程同时并发执行任务;
39.md5值,通过md5算法将数据转换为一个128位的哈希值来生成消息摘要;
40.md5碰撞,两个不同的文件计算得到相同的md5值。
41.需要说明的是,本公开中的基于遍历算法的文件比对方法及其装置可用于金融科技领域在对文件包中的文件进行差异比对的情况下,也可用于除金融科技领域之外的任意领域在对文件包中的文件进行差异比对的情况下,本公开中对基于遍历算法的文件比对方法及其装置的应用领域不做限定。
42.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人
信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
43.本发明下述各实施例可应用于各种文件比对系统/应用/设备中,对于程序版本包等文件夹结构复杂且携带的文件数量庞大的文件包,采用遍历算法,以文件包为根节点由上到下(或由下至上)自动进行遍历,获取文件包中存储的每一个文件的文件信息集合,并将文件信息集合进行比较得到两个文件包之间的差异,支持大批量文件的快速比对,并输出差异信息集合,使得结果清晰直观,另外通过输入文件路径自动进行文件包比对,无需人工操作,提升文件比对效率。
44.下面结合各个实施例来详细说明本发明。
45.实施例一
46.根据本发明实施例,提供了一种基于遍历算法的文件比对方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
47.图1是根据本发明实施例的一种可选的基于遍历算法的文件比对方法的流程图,如图1所示,该方法包括如下步骤:
48.步骤s101,获取第一待比对文件包和第二待比对文件包的文件路径,其中,第一待比对文件包为待检查的文件包,第二待比对文件包为第一待比对文件包对应的参考文件包;
49.步骤s102,采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合;
50.步骤s103,比对第一文件信息集合和第二文件信息集合,得到文件比对结果;
51.步骤s104,在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
52.通过上述步骤,获取第一待比对文件包和第二待比对文件包的文件路径,其中,第一待比对文件包为待检查的文件包,第二待比对文件包为第一待比对文件包对应的参考文件包;采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合;比对第一文件信息集合和第二文件信息集合,得到文件比对结果;在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
53.本实施例中,在进行文件比对时,针对文件包内部结构复杂数量众多的文件,通过遍历算法对待比对的两个文件包同时进行遍历,得到文件信息集合,通过对文件信息集合进行比对得到文件比对结果,支持大批量文件的快速比对,并输出差异信息集合,使得结果
清晰直观,另外通过输入文件路径自动进行文件包比对,无需人工操作,,提升文件比对效率,进而解决了相关技术中通过人工操作进行文件比对的方法,不适用于结构复杂且大批量的文件比对的技术问题。
54.下面结合上述各步骤对本发明实施例进行详细说明。
55.步骤s101,获取第一待比对文件包和第二待比对文件包的文件路径。
56.需要说明的是,在对比文档寻找纰漏、对比代码检查错误、对比图片找到差异等很多应用场景,都存在差异文件比对需求,尤其对于一些程序版本包,文件包的结构复杂且携带的文件量和数据量都很庞大,基于现有的通过人工进行比对或基于小型的比对工具进行比对的方法,比对效率低且比对的正确率也不高,本发明实施例采用遍历算法对文件包下的文件自动进行遍历,获取每个文件的信息,从而实现两个文件包之间的比对,确定两个文件包中是否存在差异,并且存在差异的情况下,将存在差异的两个文件之间的差异信息输出至界面显示。
57.需要说明的是,本发明实施例的实施主体为文件比对系统,在进行比对之前,需要先确定需要进行比对的两个文件包,包括一个待检查的第一待比对文件包和一个用于参考的第二待比对文件包,例如,对两个程序版本包的进行差异比对,以确定两者之间的变化,并确定需要进行更新或升级的内容,在比较过程中,需要以旧的程序版本包为参考文件包,确定新的版本文件包与其存在哪些差异。
58.步骤s102,采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合。
59.可选地,本实施例中的遍历算法包括但不限于:深度优先遍历算法、广度优先遍历算法,两者均为树状结构的遍历算法,由于文件包内部结构复杂,因此可以先对文件包内部结构进行梳理,将最外层的文件包作为根节点,并将其中的子文件包等作为节点,对每个节点进行遍历。
60.可选地,对待比对文件包进行遍历之前,先建立两个比对线程,基于两个比对线程分别对第一待比对文件包和第二待比对文件包中的各节点同时进行遍历,从而提升文件比对效率。
61.可选地,采用遍历算法对文件路径下的第一待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合的步骤,包括:对第一待比对文件包进行扫描,根据扫描得到的文件目录建立第一节点映射表,其中,第一节点映射表包括各文件包和节点集合中各节点之间的映射关系,节点用于指示需要进行遍历的文件包的位置,节点集合中的节点至少包括:根节点;基于第一节点映射表从根节点开始对第一待比对文件包进行遍历,并判断每个节点的节点类型;在当前节点的节点类型为子文件包的情况下,将当前节点作为新的根节点进行遍历,或者,在当前节点的节点类型为文件的情况下,结束遍历得到第一目标文件集合,第一目标文件集合中存储第一待比对文件包下需要进行差异比对的多个第一目标文件;基于遍历得到的第一目标文件集合确定与第一待比对文件包对应的第一文件信息集合。
62.需要说明的是,在进行文件包比对之前需要先建立第一节点映射表,第一节点映射表中包含了每个文件包或文件的位置与节点之间的映射关系,一个节点对应一个文件包
或文件,从根节点开始,对每个节点进行遍历,在当前节点的节点类型指示该位置存储的是文件包的情况下,则将该文件包作为一个新的根节点,对该根节点下的文件继续进行遍历,以此循环,在当前节点类型指示该位置存储的是文件的情况下,则对该位置的文件进行解析,获取文件信息。
63.可选地,基于遍历得到的第一目标文件集合确定与第一待比对文件包对应的第一文件信息集合的步骤,包括:解析第一目标文件集合,得到每个第一目标文件的文件类型;基于文件类型对每个第一目标文件进行预处理;获取预处理后的第一目标文件的文件路径和文件名,并将文件路径和文件名作为第一主键信息,得到第一主键信息集合;获取预处理后的第一目标文件的文件大小和文件哈希值,并将文件大小和文件哈希值作为第一校对值,得到第一校对值集合;将第一主键信息集合和第一校对值集合存储在第一文件信息集合。
64.需要说明的是,当确定当前节点的节点类型为文件时,判断该文件是否需要进行过滤,如果是过滤文件则直接跳过不对其进行处理,若该文件不需要进行过滤,则需要先对该文件进行解析,获取文件的文件类型,并基于文件类型对文件进行预处理,例如,对于压缩文件需要先进行解压缩,对于加密文件需要先进行解密。
65.需要说明的是,在获取到预处理后的文件后,对文件信息进行提取,其中,文件信息包括文件路径,文件名,文件大小和文件哈希值,文件哈希值是对文件内容提取摘要信息并通过md5算法将摘要信息转化为一个128位的哈希值得到的。
66.例如,通过md5算法计算字符串“hello world!”的哈希值的步骤为:
67.对原始字符串进行填充,使其长度为64的倍数。在这种情况下,“hello world!”的长度为12,因此需要添加52个字节的填充,使其总长度为64。填充方式为在字符串末尾添加一个1和若干个0,直到长度为64;
68.将填充后的字符串分成512位的数据块;
69.初始化md5算法的四个寄存器a、b、c、d的值;
70.对每个数据块进行4轮循环,每轮循环对寄存器的值进行一次变换,变换方式包括位移、逻辑运算和模运算;
71.最后得到的a、b、c、d四个寄存器的值组成128位的哈希值,即“hello world!”的md5值,最终,“hello world!”的md5值为:b94d27b9934d3e08a52e52d7da7dab fac484efe37a5380ee9088f7ace2efcde9。
72.在获取到文件信息之后,将文件路径和文件名作为第一主键信息,将文件大小和文件哈希值作为第一校对值,并将第一主键信息和第一校对值一并存储到第一文件信息集合,第一文件信息集合中的第一主键信息和第一校对值是一一对应的。
73.可选地,采用遍历算法对文件路径下的第二待比对文件包进行遍历,生成第二待比对文件包中各文件的第二文件信息集合的步骤,包括:对第二待比对文件包进行扫描,根据扫描得到的文件目录建立第二节点映射表,其中,第二节点映射表包括文件包和节点的映射关系,其中,节点用于指示需要进行遍历的文件包;基于第二节点映射表从根节点开始对第二待比对文件包进行遍历,并判断每个节点的节点类型;在当前节点的节点类型为子文件包的情况下,将当前节点作为新的根节点进行遍历,或者,在当前节点的节点类型为文件的情况下,结束遍历得到第二目标文件集合,第二目标文件集合中存储第二待比对文件
包下需要进行差异比对的多个第二目标文件;基于遍历得到的第二目标文件集合确定与第二待比对文件包对应的第二文件信息集合。
74.可选地,基于遍历得到的第二目标文件集合确定与第二待比对文件包对应的第二文件信息集合的步骤,包括:解析第二目标文件集合,判断每个第二目标文件的文件类型;基于文件类型对每个第二目标文件进行预处理;获取预处理后的第二目标文件的文件路径和文件名,并将文件路径和文件名作为第二主键信息,得到第二主键信息集合;获取预处理后的第二目标文件的文件大小和文件哈希值,并将文件大小和文件哈希值作为第二校对值,得到第二校对值集合;将第二主键信息集合和第二校对值集合存储在第二文件信息集合。
75.需要说明的是,对第二待比对文件包进行遍历和信息获取的步骤与第一待比对文件包是相同的,且是基于两个线程同时进行的。
76.步骤s103,比对第一文件信息集合和第二文件信息集合,得到文件比对结果。
77.可选地,比对第一文件信息集合和第二文件信息集合,得到文件比对结果的步骤,包括:比较第一文件信息集合中的第一主键信息与第二文件信息集合中的第二主键信息;在第一主键信息与第二主键信息相同的情况下,将第一主键信息对应的第一校对值与第二主键信息对应的第二校对值进行比较,得到文件比对结果。
78.需要说明的是,在进行比对时,需要对得到的第一信息集合和第二信息集合进行遍历,通过比对主键信息和校对值来判断两个文件是否存在差异,首先对比第一集合信息中的第一主键信息与第二信息集合中的第二主键信息是否相同,在第一主键信息和第二主键信息相同的情况下,说明该主键信息对应的是两个待比对文件包中的具有关联关系的文件对,然后再比较该文件对的校对值,若两个文件对应的第一校对值和第二校对值不相同,则表明该文件对之间存在差异。
79.步骤s104,在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
80.可选地,在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息的步骤,包括:在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,确认比对的两个文件组成的文件对之间存在差异;对存在差异的文件对进行标记,并基于存在差异的文件对的文件路径、文件名、文件大小和文件哈希值生成存在差异的文件对的差异信息。
81.可选地,在生成存在差异的文件对的差异信息之后,包括:在差异信息指示第一待比对文件包中存储有第二待比对文件包中不存在的文件的情况下,对第一待比对文件包中的文件进行文件删除操作;在差异信息指示第二待比对文件包中存储有第一待比对文件包中不存在文件的情况下,对第一待比对文件包中的文件进行文件新增操作;在差异信息指示第一待比对文件包中文件的第一校对值与第二待比对文件包中文件的第二校对值不相同的情况下,对第一待比对文件包中的文件进行文件修改操作。
82.需要说明的是,当获取到存在差异的差异文件对以及对应的差异信息后,需要对待检查的文件包进行新增、修改、删除等操作,包括:第一待比对文件包中存储有第二文件包中没有的文件,则对第一待比对文件包中的多余文件进行删除,第一待比对文件中缺少第二待比对文件包中存储的文件,则在第一待比对文件包中新增该文件,若第一待比对文
件中的某一文件与第二待比对文件包中对应的文件value值(校对值)不同,则对第一待比对文件包中的该文件进行修改。
83.可选地,本发明实施例还可以提取特定文件的文件内容,对文件内容逐个字节进行比对,获取文件对之间的差异信息。
84.下面结合一种更具体的实施方式来说明本发明。
85.本发明实施例提供了一种文件包文件差异比对方法,例如程序版本包等文件夹结构复杂,文件数量庞大的文件包,利用程序采用深度优先遍历算法或广度优先遍历算法对文件目录进行自动遍历,获取所有文件的文件名及所在路径,并获取文件大小及文件md5值,分别存入两个map数据集合,然后对两个集合进行遍历查找比对,输出两个文件包中所有差异文件,并对文件进行新增、修改、删除等操作。
86.图2是根据本发明实施例的一种可选的文件包差异比对方法的流程图,如图2所示,该文件包差异比对方法包括如下步骤:
87.步骤一:开始,建立线程a和线程b;
88.步骤二:获取文件包a(对应于上述第一待比对文件包)和文件包b(对应于上述第二待比对文件包);
89.步骤三:对文件包a和文件包b进行遍历得到两个map集合(对应于上述第一文件信息集合和第二文件信息集合);
90.步骤201:从根节点开始扫描;
91.步骤202:判断当前节点存储的是否为文件包,若是,则执行步骤203,若否,则执行步骤204;
92.步骤203:以当前节点为根节点继续扫描;
93.步骤204:判断当前文件是否需要过滤,若否,则执行步骤205,若是,则执行步骤206;
94.步骤205:判断当前文件是否为压缩文件,若是,则执行步骤207,若否,则执行步骤208;
95.步骤206:跳过;
96.步骤207:判断压缩类型,对文件进行解压缩;
97.步骤208:获取文件的文件路径和文件名并作为key(对应于上述主键信息);
98.步骤209:获取文件的文件大小和md5值(对应于上述哈希值)并作为value值(对应于上述校对值);
99.步骤210:将key值和value值存储在map集合中,得到基于两个待比对的文件包得到两个map集合;
100.步骤四:遍历两个map集合;
101.步骤五:判断key和value值;
102.步骤六:输出差异信息;
103.步骤七:对差异文件进行处理。
104.通过上述步骤:本发明实施例首先对文件包进行扫描,需要输入要对比的两个文件包的文件路径(包括:相对路径或绝对路径),采用多线程遍历算法对两个文件包进行同时遍历,获取文件包下所有文件名及所在路径,并获取文件大小及文件md5值。从根节点开
始,对每个扫描到的节点进行判断。如果该节点是文件夹则递归扫描该节点的子节点;如果是文件,则获取该文件类型并判断该文件是否需要过滤,如果需要过滤则直接跳过。如果需要比对,则先判断该文件是否为压缩文件类型(例如,zip、7z、war等),若是,则根据压缩包类型匹配相应算法自动完成解压缩后继续遍历。遍历过程中获取到的需要比对文件的相对路径和文件名作为key,文件大小和计算得到的文件md5值作为value保存到map集合中,其中增加文件大小作为比对依据是为了防止低概率md5碰撞。
105.两个文件包遍历完成以后,对生成的两个map集合进行循环遍历比对,查找比对相同key对应的value值(文件大小和文件md5值)是否相同。例如文件包a和文件包b(参考文件包),将a中存在b中不存在的文件标记为删除,反之为新增,value值不同则标注为修改。比对过程中将得到的比对结果保存到结果map集合中,最后输出到前端界面,可根据新增、修改、删除筛选查看,也可将结果导出为excel文件保存。
106.通过上述实施例,对于程序版本包等文件夹结构复杂且携带的文件数量庞大的文件包,采用遍历算法,以文件包为根节点由上到下自动进行遍历,获取文件包中存储的每一个文件的文件信息集合,并将文件信息集合进行比较得到两个文件包之间的差异,支持大批量文件的快速比对,并输出差异信息集合,使得结果清晰直观。
107.同时,通过输入文件路径自动进行文件包比对,无需人工操作。
108.下面结合另一实施例进行详细说明。
109.实施例二
110.本实施例中提供的一种基于遍历算法的文件比对装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
111.图3是根据本发明实施例的一种可选的基于遍历算法的文件比对装置的示意图,如图3所示,该文件比对装置可以包括:获取单元31、遍历单元32、比对单元33、生成单元34,其中,
112.获取单元31,用于获取第一待比对文件包和第二待比对文件包的文件路径,其中,第一待比对文件包为待检查的文件包,第二待比对文件包为第一待比对文件包对应的参考文件包;
113.遍历单元32,用于采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合;
114.比对单元33,用于比对第一文件信息集合和第二文件信息集合,得到文件比对结果;
115.生成单元34,用于在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
116.上述基于遍历算法的文件比对装置,通过获取单元31获取第一待比对文件包和第二待比对文件包的文件路径;通过遍历单元32采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合;通过比对单元33比对第一文件信息集合和第二文件信息集合,得到文件比对结果;通过生成单元34在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
117.本实施例中,在进行文件比对时,针对文件包内部结构复杂数量众多的文件,通过遍历算法对待比对的两个文件包同时进行遍历,得到文件信息集合,通过对文件信息集合进行比对得到文件比对结果,支持大批量文件的快速比对,并输出差异信息集合,使得结果清晰直观,另外通过输入文件路径自动进行文件包比对,无需人工操作,进而解决了相关技术中通过人工操作进行文件比对的方法,不适用于结构复杂且大批量的文件比对的技术问题。
118.可选地,遍历单元32包括:第一扫描模块,用于对第一待比对文件包进行扫描,根据扫描得到的文件目录建立第一节点映射表,其中,第一节点映射表包括各文件包和节点集合中各节点之间的映射关系,节点用于指示需要进行遍历的文件包的位置,节点集合中的节点至少包括:根节点;第一遍历模块,用于基于第一节点映射表从根节点开始对第一待比对文件包进行遍历,并判断每个节点的节点类型;第一判断模块,用于在当前节点的节点类型为子文件包的情况下,将当前节点作为新的根节点进行遍历,或者,在当前节点的节点类型为文件的情况下,结束遍历得到第一目标文件集合,第一目标文件集合中存储第一待比对文件包下需要进行差异比对的多个第一目标文件;第一确定模块,用于基于遍历得到的第一目标文件集合确定与第一待比对文件包对应的第一文件信息集合。
119.可选地,第一确定模块包括:第一解析子模块,用于解析第一目标文件集合,得到每个第一目标文件的文件类型;第一处理子模块,用于基于文件类型对每个第一目标文件进行预处理;第一获取子模块,用于获取预处理后的第一目标文件的文件路径和文件名,并将文件路径和文件名作为第一主键信息,得到第一主键信息集合;第二获取子模块,用于获取预处理后的第一目标文件的文件大小和文件哈希值,并将文件大小和文件哈希值作为第一校对值,得到第一校对值集合;第一存储子模块,用于将第一主键信息集合和第一校对值集合存储在第一文件信息集合。
120.可选地,遍历单元32还包括:第二扫描模块,用于对第二待比对文件包进行扫描,根据扫描得到的文件目录建立第二节点映射表,其中,第二节点映射表包括文件包和节点的映射关系,其中,节点用于指示需要进行遍历的文件包;第二遍历模块,用于基于第二节点映射表从根节点开始对第二待比对文件包进行遍历,并判断每个节点的节点类型;第二判断模块,用于在当前节点的节点类型为子文件包的情况下,将当前节点作为新的根节点进行遍历,或者,在当前节点的节点类型为文件的情况下,结束遍历得到第二目标文件集合,第二目标文件集合中存储了第二待比对文件包下需要进行差异比对的多个第二目标文件;第二确定模块,用于基于遍历得到的第二目标文件集合确定与第二待比对文件包对应的第二文件信息集合。
121.可选地,第二确定模块包括:第二解析子模块,用于解析第二目标文件集合,判断每个第二目标文件的文件类型;第二处理子模块,用于基于文件类型对每个第二目标文件进行预处理;第三获取子模块,用于获取预处理后的第二目标文件的文件路径和文件名,并将文件路径和文件名作为第二主键信息,得到第二主键信息集合;第四获取子模块,用于获取预处理后的第二目标文件的文件大小和文件哈希值,并将文件大小和文件哈希值作为第二校对值,得到第二校对值集合;第二存储子模块,用于将第二主键信息集合和第二校对值集合存储在第二文件信息集合。
122.可选地,比对单元33包括:第一比较模块,用于比较第一文件信息集合中的第一主
键信息与第二文件信息集合中的第二主键信息;第二比较模块,用于在第一主键信息与第二主键信息相同的情况下,将第一主键信息对应的第一校对值与第二主键信息对应的第二校对值进行比较,得到文件比对结果。
123.可选地,生成单元34包括:第一确认模块,用于在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,确认比对的两个文件组成的文件对之间存在差异;第一生成模块,用于对存在差异的文件对进行标记,并基于存在差异的文件对的文件路径、文件名、文件大小和文件哈希值生成存在差异的文件对的差异信息。
124.可选地,基于遍历算法的文件比对装置包括:第一删除模块,用于在差异信息指示第一待比对文件包中存储有第二待比对文件包中不存在的文件的情况下,对第一待比对文件包中的文件进行文件删除操作;第一新增模块,用于在差异信息指示第二待比对文件包中存储有第一待比对文件包中不存在文件的情况下,对第一待比对文件包中的文件进行文件新增操作;第一修改模块,用于在差异信息指示第一待比对文件包中文件的第一校对值与第二待比对文件包中文件的第二校对值不相同的情况下,对第一待比对文件包中的文件进行文件修改操作。
125.上述的基于遍历算法的文件比对装置还可以包括处理器和存储器,上述获取单元31、遍历单元32、比对单元33、生成单元34等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
126.上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对文件包进行差异比对。
127.上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
128.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项基于遍历算法的文件比对方法。
129.根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项基于遍历算法的文件比对方法。
130.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取第一待比对文件包和第二待比对文件包的文件路径,其中,第一待比对文件包为待检查的文件包,第二待比对文件包为第一待比对文件包对应的参考文件包;采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合;比对第一文件信息集合和第二文件信息集合,得到文件比对结果;在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。
131.图4是根据本发明实施例的一种基于遍历算法的文件比对方法的电子设备(或移动设备)的硬件结构框图。如图4所示,电子设备可以包括一个或多个(图4中采用402a、402b,
……
,402n来示出)处理器402(处理器402可以包括但不限于微处理器mcu或可编程逻
辑器件fpga等的处理装置)、用于存储数据的存储器404。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
132.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
133.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
134.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
135.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
136.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
137.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
138.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:
1.一种基于遍历算法的文件比对方法,其特征在于,包括:获取第一待比对文件包和第二待比对文件包的文件路径,其中,所述第一待比对文件包为待检查的文件包,所述第二待比对文件包为所述第一待比对文件包对应的参考文件包;采用遍历算法对所述文件路径下的所述第一待比对文件包和所述第二待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合和所述第二待比对文件包中各文件的第二文件信息集合;比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果;在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。2.根据权利要求1所述的比对方法,其特征在于,采用遍历算法对所述文件路径下的所述第一待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合的步骤,包括:对所述第一待比对文件包进行扫描,根据扫描得到的文件目录建立第一节点映射表,其中,所述第一节点映射表包括各文件包和节点集合中各节点之间的映射关系,所述节点用于指示需要进行遍历的文件包的位置,所述节点集合中的节点至少包括:根节点;基于所述第一节点映射表从所述根节点开始对所述第一待比对文件包进行遍历,并判断每个所述节点的节点类型;在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第一目标文件集合,所述第一目标文件集合中存储所述第一待比对文件包下需要进行差异比对的多个第一目标文件;基于遍历得到的所述第一目标文件集合确定与所述第一待比对文件包对应的所述第一文件信息集合。3.根据权利要求2所述的比对方法,其特征在于,基于遍历得到的所述第一目标文件集合确定与所述第一待比对文件包对应的所述第一文件信息集合的步骤,包括:解析所述第一目标文件集合,得到每个第一目标文件的文件类型;基于所述文件类型对每个所述第一目标文件进行预处理;获取预处理后的所述第一目标文件的文件路径和文件名,并将所述文件路径和所述文件名作为第一主键信息,得到第一主键信息集合;获取预处理后的所述第一目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第一校对值,得到第一校对值集合;将所述第一主键信息集合和所述第一校对值集合存储在所述第一文件信息集合。4.根据权利要求1所述的比对方法,其特征在于,采用遍历算法对所述文件路径下的所述第二待比对文件包进行遍历,生成所述第二待比对文件包中各文件的第二文件信息集合的步骤,包括:对所述第二待比对文件包进行扫描,根据扫描得到的文件目录建立第二节点映射表,其中,所述第二节点映射表包括文件包和节点的映射关系,其中,节点用于指示需要进行遍历的文件包;
基于所述第二节点映射表从根节点开始对所述第二待比对文件包进行遍历,并判断每个节点的节点类型;在当前节点的节点类型为子文件包的情况下,将所述当前节点作为新的根节点进行遍历,或者,在所述当前节点的节点类型为文件的情况下,结束遍历得到第二目标文件集合,所述第二目标文件集合中存储所述第二待比对文件包下需要进行差异比对的多个第二目标文件;基于遍历得到的所述第二目标文件集合确定与所述第二待比对文件包对应的所述第二文件信息集合。5.根据权利要求4所述的比对方法,其特征在于,基于遍历得到的所述第二目标文件集合确定与所述第二待比对文件包对应的所述第二文件信息集合的步骤,包括:解析所述第二目标文件集合,判断每个第二目标文件的文件类型;基于所述文件类型对每个所述第二目标文件进行预处理;获取预处理后的所述第二目标文件的文件路径和文件名,并将所述文件路径和所述文件名作为第二主键信息,得到第二主键信息集合;获取预处理后的所述第二目标文件的文件大小和文件哈希值,并将所述文件大小和所述文件哈希值作为第二校对值,得到第二校对值集合;将所述第二主键信息集合和所述第二校对值集合存储在所述第二文件信息集合。6.根据权利要求1所述的比对方法,其特征在于,比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果的步骤,包括:比较所述第一文件信息集合中的第一主键信息与所述第二文件信息集合中的第二主键信息;在所述第一主键信息与所述第二主键信息相同的情况下,将所述第一主键信息对应的第一校对值与所述第二主键信息对应的第二校对值进行比较,得到所述文件比对结果。7.根据权利要求1所述的比对方法,其特征在于,在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息的步骤,包括:在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,确认比对的两个文件组成的文件对之间存在差异;对存在差异的文件对进行标记,并基于存在差异的文件对的文件路径、文件名、文件大小和文件哈希值生成所述存在差异的文件对的差异信息。8.根据权利要求7所述的比对方法,其特征在于,在生成存在差异的文件对的差异信息之后,包括:在所述差异信息指示所述第一待比对文件包中存储有所述第二待比对文件包中不存在的文件的情况下,对所述第一待比对文件包中的文件进行文件删除操作;在所述差异信息指示所述第二待比对文件包中存储有所述第一待比对文件包中不存在文件的情况下,对所述第一待比对文件包中的文件进行文件新增操作;在所述差异信息指示所述第一待比对文件包中文件的第一校对值与所述第二待比对文件包中文件的第二校对值不相同的情况下,对所述第一待比对文件包中的文件进行文件修改操作。
9.一种基于遍历算法的文件比对装置,其特征在于,包括:获取单元,用于获取第一待比对文件包和第二待比对文件包的文件路径,其中,所述第一待比对文件包为待检查的文件包,所述第二待比对文件包为所述第一待比对文件包对应的参考文件包;遍历单元,用于采用遍历算法对所述文件路径下的所述第一待比对文件包和所述第二待比对文件包进行遍历,生成所述第一待比对文件包中各文件的第一文件信息集合和所述第二待比对文件包中各文件的第二文件信息集合;比对单元,用于比对所述第一文件信息集合和所述第二文件信息集合,得到文件比对结果;生成单元,用于在所述文件比对结果指示所述第一文件信息集合和所述第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至8中任意一项所述的基于遍历算法的文件比对方法。11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的基于遍历算法的文件比对方法。

技术总结
本发明公开了一种基于遍历算法的文件比对方法及其装置、电子设备,涉及金融科技领域,其中,该文件比对方法包括:先获取第一待比对文件包和第二待比对文件包的文件路径,再采用遍历算法对文件路径下的第一待比对文件包和第二待比对文件包进行遍历,生成第一待比对文件包中各文件的第一文件信息集合和第二待比对文件包中各文件的第二文件信息集合,然后比对第一文件信息集合和第二文件信息集合,得到文件比对结果,最后在文件比对结果指示第一文件信息集合和第二文件信息集合存在差异的情况下,生成存在差异的文件对的差异信息。本发明解决了相关技术中通过人工操作进行文件比对的方法,不适用于结构复杂且大批量的文件比对的技术问题。对的技术问题。对的技术问题。


技术研发人员:李玉奇 潘素梅 王盛 王国锋
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.03.14
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐