目录差分方法、装置及相应终端与流程

文档序号:14835373发布日期:2018-06-30 12:10阅读:143来源:国知局
目录差分方法、装置及相应终端与流程

本发明涉及计算机技术领域,具体而言,本发明涉及一种目录差分方法、装置及相应终端。



背景技术:

随着移动互联网技术的飞速发展,软件动态升级已经成为当前信息时代中软件持续使用的必然需求。所谓软件动态升级就是指移动设备在出厂上市到客户手中后,为了方便后期软件维护,移动设备生产商会推送系统补丁到手机,用户只要确认升级就可以把补丁应用于本系统,实现软件升级的目的。

一般推送补丁有两种方式,一种是把整个新文件的全部内容都通过网络推送到移动设备端。但是由于整个完整的文件尺寸较大,网络传输和本地存储都有压力,且耗费时间长,用户体验也很差。因此通常情况下,设备厂商推送的补丁不是整个的完整的文件,而是在已有文件的基础上实施部分修改后达到升级目的补丁包,即另一种差分推送方式,就是把两个文件的不同内容推送过去。举个例子:

例如:原系统中有个文件的内容是123456789;

新系统中该文件的内容需要更改成1234567890;

可见,该文件的内容变化只有一个“0”,这时,显然差分推送更好,推送内容少,且能达到升级的效果。

差分升级需求广泛存在于移动互联网领域,目前,单独两个普通文件之间的差分方法已经很成熟,如上面提到的两个文件内容只相差“0”的例子,各个厂商和系统采用的差分手段都会有所差别,但大体原理都是相同的,已有一些算法可以处理两个普通文件之间的差分。

然而,通常一个系统或软件会包含很多内容,不只是一个普通文件,也不只是一个目录,还包含很多额外因素,例如增加了设备文件,增加了文件的权能,修改了文件的属主等。对于复杂情况的系统或软件结构,如何准确高效的制作出差分包,即补丁,是亟需解决的技术问题。



技术实现要素:

为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:

本发明提供了一种目录差分方法,包括如下步骤:

提取第一目录及第二目录中的各个元素的相关信息;

针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构;

依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表;

通过比对所述第一数据结构表和所述第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理。

具体地,所述针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构,包括:

根据提取到的该元素的路径、名称、类型、属性、结构体和链接值中的至少一项,依据预定的数据结构模板生成对应的数据结构。

具体地,所述通过比对所述第一数据结构表和所述第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理,包括:

当所述第一数据结构表中的任一名称不存在于所述第二数据结构表中,则删除所述第一目录中该名称所属元素;

当所述第二数据结构表中的任一名称不存在于所述第一数据结构表中,则将所述第二目录中该名称所属元素添加至所述第一目录中;

当所述第一数据结构表中与所述第二数据结构表中具有相同的名称时,则对比该名称所属元素在所述第一数据结构表中与所述第二数据结构表中分别对应的类型,并根据类型比对结果进行相应的差分处理;

其中,元素的类型为以下任一种:

普通文件;子目录文件;符号链接;特殊文件;硬链接。

具体地,根据类型比对结果进行相应的差分处理,包括以下任一情形;

若类型不同,则删除所述第一目录中该名称所属元素,并将所述第二目录中该名称所属元素添加至所述第一目录中;

若类型相同且均为子目录文件,则判断该子目录的属性是否相同;若否,则将所述第二目录中该名称所属元素的属性赋予所述第一目录中的该名称所属元素;

若类型相同且均为符号链接,则判断该符号链接所指向的内容是否相同;若是,则当该符号链接的属性不同时,将所述第二目录中该名称所属元素的属性赋予所述第一目录中的该名称所属元素;若否,则删除所述第一目录中的该名称所属元素,并将所述第二目录中的该名称所属元素添加至所述第一目录中;

若类型相同且均为特殊文件,则判断该特殊文件对应的设备号是否相同;若是,则当该特殊文件的属性不同时,将所述第二目录中该名称所属元素的属性赋予所述第一目录中的该名称所属元素;若否,则删除所述第一目录中的该名称所属元素,并将所述第二目录中的该名称所属元素添加至所述第一目录中;

其中,所述元素的属性包括以下至少一种:

属主信息;访问权限;扩展属性。

具体地,任一元素的元素类型包括硬链接和非硬链接;

所述针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构,包括:

根据该元素的相关信息,依据与该元素的元素类型对应的数据结构模板生成对应的数据结构;

所述依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表,包括:

依据第一目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第二数据结构表。

具体地,针对任一硬链接元素,根据该元素的相关信息,依据与该元素的元素类型对应的数据结构模板生成对应的数据结构,包括:

根据提取到的该硬链接元素的文件节点及指向所述文件节点的各个链接,依据预定的硬链接数据结构模板生成对应的数据结构。

具体地,通过比对所述第一数据结构表和所述第二数据结构表,对第一目录中的各个硬链接元素与第二目录中的各个硬链接元素进行差分处理,包括:

当所述第一数据结构表中的任一文件节点不存在于所述第二数据结构表中,则删除所述第一目录中该文件节点对应的硬链接元素;

当所述第二数据结构表中的任一文件节点不存在于所述第一数据结构表中,则将所述第二目录中的该文件节点对应的硬链接元素添加至所述第一目录中;

当所述第一数据结构表中与所述第二数据结构表中具有相同的文件节点时,确定指向该文件节点的各个链接是否相同;

若否,则删除所述第一目录中该文件节点对应的硬链接元素,并将所述第二目录中的该文件节点对应的硬链接元素添加至所述第一目录中。

本发明还提供了一种目录差分装置,包括:

信息提取模块,用于提取第一目录及第二目录中的各个元素的相关信息;

数据结构生成模块,用于针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构;

数据结构表生成模块,用于依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表;

差分模块,用于通过比对所述第一数据结构表和所述第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理。

具体地,所述数据结构表生成模块具体用于根据提取到的该元素的路径、名称、类型、属性、结构体和链接值中的至少一项,依据预定的数据结构模板生成对应的数据结构。

本发明还提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的目录差分方法。

本发明提供的目录差分方法、装置及相应终端,采用提取第一目录及第二目录中的各个元素的相关信息;针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构;依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表;通过比对第一数据结构表和第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理;本发明利用预定的数据结构来描述目录中的任意元素,将复杂的元素信息都提取出来,从而使得生成的数据结构表能够准确地描述一整个目录,通过两个表的对比可以有效差分复杂的目录结构,与现有技术相比,显著提高了差分的准确性。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例提供的目录差分方法的流程示意图;

图2为本发明实施例提供的目录差分装置的框架示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

下面结合附图具体介绍本发明实施例的技术方案。

本发明实施例提供了一种目录差分方法,如图1所示,包括如下步骤:

步骤S110:提取第一目录及第二目录中的各个元素的相关信息;步骤S120:针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构;步骤S130:依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表;步骤S140:通过比对第一数据结构表和第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理。

本发明实施例提供的目录差分方法,利用预定的数据结构来描述目录中的任意元素,将复杂的元素信息都提取出来,从而使得生成的数据结构表能够准确地描述一整个目录,通过两个表的对比可以有效差分复杂的目录结构,与现有技术相比,显著提高了差分的准确性。

实际应用中,实现差分需要两个因素,一个是使用中的系统或软件,即待更新的文件,另一个是更新后的系统或软件。本发明实施例中,将这两个因素看作两个目录,其中,第一目录里包含了待更新的系统或软件的全部内容,第二目录包含了更新后的系统或软件的所有内容,实现差分处理以及制作差分升级包只需要关注这两个目录即可。

本发明实施例所应用的复杂目录结构,可以包括但不限于以下内容:

1)目录中存在符号链接

如果第一目录中有a、b两个文件,且b文件是指向a文件的符号链接,即直接读b文件,就相当于读a文件;而第二目录中也存在a、b两个文件,但是a文件和b文件是相互独立的两个普通文件。此时如果对两个目录做差分,现有的差分算法不会区别对待符号链接,而把符号链接看作普通文件,这种情况下的差分结果必然仅包括第一目录中的a文件与第二目录中的a文件的差别,以及第一目录中的b文件与第二目录中的b文件的差别。但是第一目录中有a文件和b文件实际上是同一个文件,当把该差分结果真正应用于更新第一目录时必然发生错误。

2)目录中存在硬链接

硬链接与符号链接类似,也是由某个文件是指向另一个文件,但与符号链接不同的是,硬链接本身和其所指向的目标文件没有主从的关系,不是一个依靠另外一个的存在,而是对等的关系。不同于符号链接存在的主从关系,如果被指向的文件被删除,符号链接本身则无法正确打开和读取其内容,因为指向的目标已经不存在。而硬链接中,如果删除其中一个文件,另外一个仍然可以看成是普通文件。

虽然硬链接与符号链接略有不同,但是同样也存在与符号链接相同的问题,现有的差分算法不会区别对待硬链接,使得差分结果发生错误。

3)目录中存在特殊文件

特殊文件包括但不限于设备文件、socket文件、管道文件等。

现有的差分算法不能识别特殊文件而是直接当成设备使用,在差分过程中遇到目录中存在特殊文件的情况,甚至可能无法完成差分。

4)目录中的文件存在个别属性

其中,属性包括但不限于属主信息、访问权限、扩展属性等。

现有的差分算法不能识别文件的属性,而文件的属性实际上必不可少,例如扩展属性,很多重要的功能都依赖于文件的扩展属性,如可执行文件的权能、一般文件的selinux标签等。如果第一目录中的a文件和第二目录中的a文件具有相同内容,只是文件的属主信息、访问权限、扩展属性等不一样,按照目前的差分方式忽略这些信息显然是有问题的。

本发明实施例提供的目录差分方法能够解决上述问题,下面进行详细介绍,具体如下:

步骤S110中,提取第一目录及第二目录中的各个元素的相关信息:

具体地,遍历第一目录中的所有元素,把每个元素的相关信息都提取出来,同样遍历第二目录中的所有元素,把每个元素的相关信息都提取出来。

其中,提取的方式遵循预定的提取规则。作为示例地,对每个元素,按照第一提取规则提取其地址信息、名称信息等,再划分其元素类型,基于其元素类型确定对应的第二提取规则,提取与该元素的类型相对应的相关信息。本领域技术人员可以根据实际情况设置相关信息的有效提取方式,本发明实施例对此不做限定。

本发明实施例中,为了提高相关信息的提取效率,可以根据本发明实施例提供的数据结构模板来确定需要提取的信息,以使得提取的信息能够准确用于本发明实施例提供的目录差分方法,防止信息冗余。

步骤S120中,针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构:

具体地,第一目录和第二目录每个元素都需要创建其对应的数据结构。

本发明实施例中,预定的数据结构模板定义的数据结构如下:

具体而言,包含如下项:“路径path”、“名称name”、“类型type”、“属性mode”、“结构stat”、“链接值linkValue”和“扩展属性attrs”。路径path项用于根据两个数据结构表的对比结果,对相应的元素进行寻址并进行差分处理。名称name项作为标识信息,在后续差分过程中的重要判断因素。类型type项与元素的类型有关,在前期的信息提取和后续差分过程中都起到重要的判别作用,结合上文可知,元素的类型为以下任一种:普通文件、子目录文件、符号链接、特殊文件、硬链接。结构stat项和链接值linkValue项关系到处理符号链接和硬链接的能力。属性mode项和扩展属性attrs项用于存储元素属性的相关字段,包括但不限于:属主信息、访问权限、扩展属性等。

可以理解,实际应用中,存在某元素创建的数据结构中某一项为空项的情况,例如某普通文件的链接值linkValue项为空项,又例如某元素的扩展属性项为空项等。

如上所述,本发明实施例提供的该数据结构模板,能够描述目录中的任意元素。不管是符号链接、硬链接、普通文件、子目录文件,还是特殊文件,以及元素的属主信息、访问权限,所有的扩展属性等,都能通过这个FileInfo数据结构模板来描述。

本发明实施例中,对每个元素来说都对应有自己的数据结构,是根据提取到的该元素的路径、名称、类型、属性、结构体和链接值中的至少一项,依据预定的数据结构模板生成的,以便后续对每个元素都能够有效差分。

步骤S130中,依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表:

具体而言,第一目录对应了一张数据结构表,即第一数据结构表,包含了第一目录中的每个元素对应的数据结构。第二目录对应了一张数据结构表,即第二数据结构表,包含了第二目录中的每个元素对应的数据结构。也就是说,每张表都涵盖了其对应的目录的全部信息,后续的差分过程都是基于这两张表的对比,就可以充分示出两个目录的差异。

步骤S140中,通过比对第一数据结构表和第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理:

具体而言,分别遍历第一数据结构表和第二数据结构表中的各个数据结构,比较其中包含的名称name信息。

当第一数据结构表中的任一名称name不存在于第二数据结构表中,则删除第一目录中该名称所属元素。

不管是哪种类型的元素,只要属于上述情况,就可以直接执行删除操作。值得注意的是,如果删除的类型是子目录文件,应该在删除该子目录文件之前删除该子目录下所有内容。

当第二数据结构表中的任一名称name不存在于第一数据结构表中,则将第二目录中该名称所属元素添加至第一目录中。

具体地,可以完整地拷贝该元素,包括拷贝文件内容、文件属性等。

需要说明的是,若是符号链接类型的元素,则需要拷贝该符号链接本身,而非该符号链接所指向的内容。

以及,若是特殊文件类型的元素,则需要拷贝该特殊文件本身,而非该特殊文件代表的设备。

以及,若是子目录文件类型的元素,则需要拷贝整个目录内容,目录中的每个元素也符合上述拷贝规则。

当第一数据结构表中与第二数据结构表中具有相同的名称name时,则对比该名称所属元素在第一数据结构表中与第二数据结构表中分别对应的类型,并根据类型比对结果进行相应的差分处理。

具体而言,若类型不同,则删除第一目录中该名称所属元素,并将第二目录中该名称所属元素添加至第一目录中。

作为示例地,第一目录中该名称所属元素的类型为普通文件,第二目录中该名称所属元素的类型为特殊文件或者子目录文件,由于类型不同不能直接差分,删除第一目录中的该普通文件,并将该特殊文件或者子目录文件添加至第一目录中。

可选地,根据比对结果确定出,若类型相同且均为普通文件,则可以利用现有的差分算法对这两个普通文件的内容进程差分,在此不再赘述。

可选地,根据比对结果确定出,若类型相同且均为子目录文件,则判断该子目录的属性是否相同;若否,则将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素。

由上可知,属性包括属主信息、访问权限、扩展属性等。

可以理解,将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素,也就是不论第二目录中该名称所属元素的属性是较多或是较少,只要不同,都直接替换第一目录中的该名称所属元素的属性。

具体地,可以将第一目录中的该名称所属元素的属性删除,再添加第二目录中该名称所属元素的属性。

只有在属性相同的情况下,无需执行属性赋予的过程。

可选地,根据比对结果确定出,若类型相同且均为符号链接,则判断该符号链接所指向的内容是否相同,

若是,则当该符号链接的属性不同时,将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素;

若否,则删除第一目录中的该名称所属元素,并将第二目录中的该名称所属元素添加至第一目录中。

其中,具体地属性赋予过程参见上述介绍,在此不再赘述。

可选地,根据比对结果确定出,若类型相同且均为特殊文件,则判断该特殊文件对应的设备号是否相同;

若是,则当该特殊文件的属性不同时,将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素;

若否,则删除第一目录中的该名称所属元素,并将第二目录中的该名称所属元素添加至第一目录中。

其中,具体地属性赋予过程参见上述介绍,在此不再赘述。

本发明另一个优选的实施例中,考虑到硬链接的特殊性,可以为其设置单独的数据结构模板,以提高差分的准确性。

这时候,将元素类型按照硬链接和非硬链接来区分,那么步骤S120中,需要根据该元素的相关信息,依据与该元素的元素类型对应的数据结构模板生成对应的数据结构。

具体地,非硬链接元素可直接使用上述实施例提供的数据结构模板,而硬链接元素采用本发明实施例提供的另一个数据结构模板,该数据结构模板定义的数据结构如下:

具体而言,包含如下项:“文件节点inod”和“链接views”。由于互为硬链接的文件具有相同的文件节点,用文件节点inod项来存储硬链接的文件节点,一般都用长整数来表示。而所有指向该文件节点的各个链接都存储在链接views中。通过这个数据结构就可以描述相互关联的几个硬链接文件。作为示例地,a、b、c三个文件互为硬链接,且最终的内容文件节点是21390004,就可以用一个HardLink数据结构模板来描述。

本发明实施例中,对每个硬链接元素来说都对应有自己的数据结构,是根据提取到的该硬链接元素的文件节点及指向文件节点的各个链接,依据预定的硬链接数据结构模板生成的,以便后续对每个硬链接元素都能够有效差分。

随后,在步骤S130中,需要依据第一目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第二数据结构表。

同理,第一数据结构表包含了第一目录中的每个元素对应的数据结构,包括全部的硬链接元素和全部的非硬链接元素。第二数据结构表也包含了第二目录中的每个元素对应的数据结构,包括全部的硬链接元素和全部的非硬链接元素。

在步骤S140中,同样需要比对第一数据结构表和第二数据结构表,具体地,可以比较其中包含的名称文件节点inod信息来差分硬链接元素。

当第一数据结构表中的任一文件节点inod不存在于第二数据结构表中,则删除第一目录中该文件节点对应的硬链接元素;

当第二数据结构表中的任一文件节点inod不存在于第一数据结构表中,则将第二目录中的该文件节点对应的硬链接元素添加至第一目录中;

当第一数据结构表中与第二数据结构表中具有相同的文件节点inod时,确定指向该文件节点的各个链接是否相同;

若否,则删除第一目录中该文件节点对应的硬链接元素,并将第二目录中的该文件节点对应的硬链接元素添加至第一目录中。

本发明实施例提供的目录差分方法,将记录上述各差分过程的步骤,而不实际对第一目录进行操作,得到的就是第一目录和第二目录中包含的各元素差分结果。使用时,将该差分结果应用于第一目录,就可以得到和第二目录完全一样的内容。

本发明实施例提供的目录差分方法,本发明利用预定的数据结构来描述目录中的任意元素,将复杂的元素信息都提取出来,从而使得生成的数据结构表能够准确地描述一整个目录,通过两个表的对比可以有效差分复杂的目录结构,与现有技术相比,显著提高了差分的准确性。

本发明实施例还提供了一种目录差分装置,如图2所示,包括:

信息提取模块210,用于提取第一目录及第二目录中的各个元素的相关信息;

数据结构生成模块220,用于针对任一元素,根据该元素的相关信息,依据预定的数据结构模板生成对应的数据结构;

数据结构表生成模块230,用于依据第一目录中的各个元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个元素分别对应的数据结构来生成第二数据结构表;

差分模块240,用于通过比对第一数据结构表和第二数据结构表,对第一目录中的各个元素与第二目录中的各个元素进行差分处理。

具体地,数据结构表生成模块230具体用于根据提取到的该元素的路径、名称、类型、属性、结构体和链接值中的至少一项,依据预定的数据结构模板生成对应的数据结构。

具体地,差分模块240具体用于当第一数据结构表中的任一名称不存在于第二数据结构表中,则删除第一目录中该名称所属元素;

以及,差分模块240具体用于当第二数据结构表中的任一名称不存在于第一数据结构表中,则将第二目录中该名称所属元素添加至第一目录中;

以及,差分模块240具体用于当第一数据结构表中与第二数据结构表中具有相同的名称时,则对比该名称所属元素在第一数据结构表中与第二数据结构表中分别对应的类型,并根据类型比对结果进行相应的差分处理;

其中,元素的类型为以下任一种:

普通文件;子目录文件;符号链接;特殊文件;硬链接。

可选地,差分模块240具体用于:若类型不同,则删除第一目录中该名称所属元素,并将第二目录中该名称所属元素添加至第一目录中;

以及,差分模块240具体用于:若类型相同且均为子目录文件,则判断该子目录的属性是否相同;若否,则将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素;

以及,差分模块240具体用于:若类型相同且均为符号链接,则判断该符号链接所指向的内容是否相同;若是,则当该符号链接的属性不同时,将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素;若否,则删除第一目录中的该名称所属元素,并将第二目录中的该名称所属元素添加至第一目录中;

以及,差分模块240具体用于:若类型相同且均为特殊文件,则判断该特殊文件对应的设备号是否相同;若是,则当该特殊文件的属性不同时,将第二目录中该名称所属元素的属性赋予第一目录中的该名称所属元素;若否,则删除第一目录中的该名称所属元素,并将第二目录中的该名称所属元素添加至第一目录中;

其中,元素的属性包括以下至少一种:

属主信息;访问权限;扩展属性。

可选地,任一元素的元素类型包括硬链接和非硬链接;

数据结构生成模块220具体用于根据该元素的相关信息,依据与该元素的元素类型对应的数据结构模板生成对应的数据结构;

数据结构表生成模块230具体用于依据第一目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第一数据结构表,并依据第二目录中的各个硬链接元素分别对应的数据结构、以及各个非硬链接元素分别对应的数据结构来生成第二数据结构表。

具体地,数据结构生成模块220具体用于根据提取到的该硬链接元素的文件节点及指向文件节点的各个链接,依据预定的硬链接数据结构模板生成对应的数据结构。

具体地,差分模块240具体用于当第一数据结构表中的任一文件节点不存在于第二数据结构表中,则删除第一目录中该文件节点对应的硬链接元素;

以及,差分模块240具体用于当第二数据结构表中的任一文件节点不存在于第一数据结构表中,则将第二目录中的该文件节点对应的硬链接元素添加至第一目录中;

以及,差分模块240具体用于当第一数据结构表中与第二数据结构表中具有相同的文件节点时,确定指向该文件节点的各个链接是否相同;若否,则删除第一目录中该文件节点对应的硬链接元素,并将第二目录中的该文件节点对应的硬链接元素添加至第一目录中。

本发明实施例所提供的装置可以为设备上的特定硬件或者加载于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。

本发明实施例提供的目录差分装置,利用预定的数据结构来描述目录中的任意元素,将复杂的元素信息都提取出来,从而使得生成的数据结构表能够准确地描述一整个目录,通过两个表的对比可以有效差分复杂的目录结构,与现有技术相比,显著提高了差分的准确性。

本发明实施例还提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的目录差分方法。

该终端可以为包括计算机、手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备。

其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器是控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据,从而对终端进行整体监控。可选的,处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。

本发明实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的目录差分方法。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1