一种恢复可执行程序依赖文件的方法及装置的制作方法

文档序号:6433826阅读:164来源:国知局

专利名称::一种恢复可执行程序依赖文件的方法及装置的制作方法
技术领域
:本发明涉及计算机
技术领域
,特别是涉及一种恢复可执行程序依赖文件的方法及装置。
背景技术
:可执行程序通常需要依赖于多个文件才能正常运行,这种文件可以被称为可执行程序的依赖文件。在实际应用中,这些依赖文件包括动态链接库(通常以dll为扩展名)、数据配置文件(通常以dat等为扩展名)等等。例如,某可执行程序所依赖的文件可能包括"AntiEng.dll”、“Antiextl.dll”、“BaseExamine.dll”、"LibTask.dat”等等。一旦可执行程序的某个或某些依赖文件被删除,则可执行程序将无法正常运行。在实际应用中,造成这些依赖文件被删除的原因可能是多种多样的,例如,可能是用户执行了误删除操作,或者还有可能是磁盘的分区发生故障,导致其中保存的部分甚至数据被意外删除等等。上述各种可能的删除操作,实际上并不是真正的将数据删除,而是在文件属性中将该文件的一个标识设置为删除,并且将数据占用的磁盘空间(也即文件所在的数据区)标记为可写。也就是说,组成该文件的具体数据在磁盘上仍然存在,这就为恢复已删除文件提供了可能性,目前也存在一些能够进行文件恢复的软件等产品。因此,如果发现某可执行程序无法正常运行,并且确定其原因是某些依赖文件被删除,则可以通过将这些被删除的依赖文件进行恢复,使得可执行程序能够正常运行。然而在实际应用中,由于依赖文件已经被删除,因此依赖文件的数据区可能会被其他文件所覆盖,这就会造成依赖文件的数据被破坏。如果产生这种情况,则即使使用文件恢复工具,可能也无法将其恢复。此时,现有技术中只能将该可执行程序卸载,然后重新下载安装文件进行安装。然而有些的可执行程序的安装文件可能非常大,重新下载会占用较多的网络资源,并且下载与安装的过程也会造成时间上的浪费。可见,迫切需要本领域技术人员解决的技术问题就在于,在对可执行程序的依赖文件进行恢复的过程中,如果依赖文件的数据已经被破坏,则如何在不通过重新安装的方式,使得可执行程序恢复正常运行。
发明内容本发明提供了一种恢复可执行程序依赖文件的方法及装置,在对可执行程序的依赖文件进行恢复的过程中,如果依赖文件的数据已经被破坏,可以不需要重新安装,即可使得可执行程序恢复正常运行。本发明提供了如下方案一种恢复可执行程序依赖文件的方法,包括确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;如果是,则从网络侧获取关于该待恢复的文件;将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。其中,所述确定待恢复的文件包括将用户指定的文件确定为待恢复的文件;所述方法还包括根据预置的可执行程序与依赖文件之间的对应关系,确定所述待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。其中,所述确定待恢复的文件包括当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。其中,所述判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏包括对所述待恢复的文件进行恢复,如果未恢复成功,则所述待恢复的文件所在磁盘数据区中的数据已被破坏;其中,所述判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏包括判断所述待恢复的文件所在磁盘数据区是否被其他文件覆盖,如果是,则所述待恢复的文件所在磁盘数据区的数据已被破坏。一种恢复可执行程序依赖文件的装置,包括文件确定单元,用于确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断单元,用于判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;文件获取单元,用于如果是,则从网络侧获取关于该待恢复的文件;添加单元,用于将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。其中,所述文件确定单元具体用于将用户指定的文件确定为待恢复的文件;所述装置还包括程序确定单元,用于根据预置的可执行程序与依赖文件之间的对应关系,确定所述待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。其中,所述文件确定单元具体用于当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。其中,所述判断单元包括第一判断子单元,用于对所述待恢复的文件进行恢复,如果未恢复成功,则所述待恢复的文件所在磁盘数据区中的数据已被破坏;其中,所述判断单元包括第二判断子单元,用于判断所述待恢复的文件所在磁盘数据区是否被其他文件覆盖,如果是,则所述待恢复的文件所在磁盘数据区的数据已被破坏。根据本发明提供的具体实施例,本发明公开了以下技术效果通过本发明,在对已删除文件进行恢复的过程中,如果发现某文件是某可执行程序的依赖文件,并且该文件在磁盘数据区中的数据已被破坏,则可以从网络侧下载该待恢复文件,并将其添加到该可执行程序的依赖文件所在的本地文件夹中,这样,该可执行程序就可以依赖该从网络侧获取到的文件以及文件夹中的其他依赖文件来正常运行了。可见,通过本发明的方法,即使某些被破坏的依赖文件无法从本地恢复,也可以通过云端的支持,将其下载到本地,使得可执行程序重新获得完整的依赖文件,进而使其恢复正常运行。因此,不必再重新下载安装文件,更不需要重新进行安装,因此,可以节省网络资源,降低时间成本。另一方面,对于本地未被破坏的其他依赖文件而言,也可以得到有效的利用,因此也相当于避免了对本地未被破坏的依赖文件造成浪费。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的方法的流程图;图2是本发明实施例提供的方法中一界面示意图;图3是本发明实施例提供的装置的示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。参见图1,本发明实施例提供的恢复可执行程序依赖文件的方法包括以下步骤SlOl确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;具体在确定待恢复的文件(也即确定需要恢复哪个文件)时,可以由用户手动进行指定,也可以由恢复工具自动进行确定。其中,关于第一种方式,相当于是在用户发现某可执行程序已经无法正常运行之后,知道可能是由于某些依赖文件被删除造成的,于是自行查看该可执行程序的依赖文件所在的文件夹(在默认的情况下,这种文件夹通常是统一存放在C盘的ProgramFile这一文件夹中,也就是说,当将某可执行程序安装在某计算机上时,安装程序会自动在I^rogramFile这一文件夹中创建该可执行程序的文件夹,将该可执行程序的所有依赖程序都存放到该文件夹中),如果发现当前文件夹中缺少了某依赖文件,则用户可以手动执行对该文件的恢复操作。当然,在这种方式下,由于不管待恢复文件是被用户执行过删除操作的文件,还是意外被删除的文件,对于用户而言是不可见的(也即,可执行程序的依赖文件所在的文件夹中当前并不存在该文件),因此,如果不进行特殊操作,则用户无法对已删除文件进行选择操作(也即,无法指定需要恢复哪个文件)。针对这种情况,通常可以首先对于各个磁盘分区,找到其中被标记为“已删除”的文件,并以列表的方式将这些文件展现给用户。例如,展现的界面可以如图2所示。从图2可以看出,列表中展现出了各个已删除文件的文件名、大小、创建时间、访问时间等等属性,用户可以根据各个文件的文件名等属性进行判断,从中选择出需要恢复的文件。这样,根据用户的选择结果,即可确定需要恢复的已删除文件。当然,还可以为用户提供入口,由用户通过该入口输入需要恢复的文件的属性信息(包括文件名等),此时,就可以扫描磁盘分区,从已删除文件中找到符合用户输入条件的文件,并将其作为待恢复的文件即可。当然,在这种由用户执行恢复哪个文件的情况下,恢复工具可能并不知晓该文件是哪个可执行程序的依赖文件,因此,还可以包括以下操作根据预置的可执行程序与依赖文件之间的对应关系,确定待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。也即,为了知晓待恢复的文件是哪个可执行程序的依赖文件,进而为后续的恢复操作提供基础,可以首先建立各个常见的可执行程序与其依赖文件之间的对应关系(在该预先建立的对应关系中,一个可执行程序对应着其运行时所需的全部依赖文件,当然,在对应关系中,每个依赖文件可以用文件名来表示),这样,当用户指定了对某文件进行恢复时,就可以通过查询该对应关系,获知该待恢复的文件是哪个可执行程序的依赖文件,进而就可以或者该可执行程序的依赖文件所在的本地文件夹,这些信息可以供后续使用。从以上所述可知,上述用户指定待恢复的文件的方式中,需要用户具有较多的先验知识才能够实现,包括需要知道可执行程序无法正常的原因,在知道该原因之后,还需要知道依赖文件所在的文件夹中当前缺少的是哪个文件,等等。但在实际应用中,一些普通的用户可能并不知晓这些信息,因此,针对这种情况,本发明实施例还可以采用其他的确定待恢复的文件的实现方式。在该方式中,恢复工具可以对可执行程序的运行情况进行监控,当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。也就是说,可以在恢复工具预先建立各个常见的可执行程序与其依赖文件之间的对应关系,并且恢复工具可以自动对可执行程序的运行情况进行监控,当发现某可执行程序无法正常运行时,就可以查询之前建立的对应关系,判断该可执行程序的依赖文件所在的文件夹中是否缺少某依赖文件,如果是,就可以将该缺少的文件作为待恢复的文件。S102判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;其中,由于待恢复的文件是原来存在,但是后来被删除了的文件,而如前文所述,文件被删除之后,其原来在磁盘数据区中的数据并不是就消失了,而是其所在的磁盘数据区被置为可写。因此,所谓待恢复的文件所在磁盘数据区中的数据,实际上就是该待恢复的文件在被删除之前所在的数据区中的数据。具体在判断文件所在磁盘数据区中的的数据是否已被破坏时,可以有多种实现方式。例如,在其中一种实现方式下,在确定了待恢复文件之后,可以首先使用传统的方法对文件进行恢复(在传统的方法中,可能是直接找出待恢复文件的文件头,并将文件头的前两个代码恢复,然后在文件分配表中重新进行映射;或者,还可能是将待恢复文件的数据从原数据区读出,重新写成一个文件,并按照默认的路径或用户指定的路径进行重新保存,等等),如果未能成功将该文件恢复,则可以证明该待恢复文件的数据已经被破坏。或者,在另一种具体的实现方式下,可以判断待恢复文件所在的磁盘数据区是否被其他文件覆盖,如果是,则该待恢复文件的数据已被破坏。具体的,由于MFT(MasterFileTable,主文件表)中记录了当前分区的所有文件的属性,包括文件名和占用的扇区等信息,并且即使之前对文件进行了删除操作或者被意外删除,MFT中的这些信息仍然不会被删除,因此,可以首先获取所述待恢复文件在MFT中的索引,由此获知待恢复文件所在的数据区,同时,还可以获取该磁盘分区中其他文件所在的数据区,判断是否有其他文件的数据区与该文件所在的数据区发生重叠,如果有,则证明该文件所在的数据区已经被其他文件覆盖,因此,该文件的数据已经被破坏。需要说明的是,在前述第一种实现方式中,相当于是可以先不用判断文件数据的完整性,直接进行恢复,在恢复的过程中,如果发现有些数据被其他文件的数据覆盖,则也可以使用一些深层分析工具进行分析,也即,首先尽可能地利用本地的数据进行恢复,如果采用深层分析工具都无法成功进行恢复,才认为该待恢复文件已经被破坏。而在前述第二种实现方式中,相当于在具体进行恢复之前,先判断待恢复文件的数据的完整性,如果分析出数据已经不完整,则直接将其视为数据已破坏,并且暂时不需进行数据的恢复操作。在实际应用中,可以采用上述任一种方式进行,当然,还可以将上述两种方式相结合,或者采用其他类似的方式,这里不进行限定。S103如果是,则从网络侧获取关于该待恢复的文件;S104:将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。可执行程序的依赖文件中,存在一类比较特殊的文件,这种文件通常可以被称为PE(PortableExecute,可移植的执行体),常见的EXE、DLL、OCX、SYS、COM都是PE文件的后缀名,这些文件的特点是,不会因为具体的安装环境、配置数据的变化而变化。这也就决定了,即使某可执行程序是被安装在不同的计算机上,并且被不同的用户设定了不同的配置参数(例如,用户可以设定各自喜欢的界面风格、皮肤等等),这些文件也不会变化。这也就为本发明实施例对这种文件的特殊恢复方法提供了可能。当然,从以上所述可以看出,可能并不是每个待恢复文件都在网络侧存在相同的资源,因此,在实际应用中,为了节省网络资源,在具体从网络侧获取待恢复文件的相关信息之前,还可以首先判断下该待恢复文件在网络侧是否可能存在相同的资源,如果存在,再从网络侧去获取。具体在进行判断时,可以根据待恢复文件的后缀名等进行判断,例如,某待恢复文件的后缀名是DLL、OCX等,则证明该文件是PE文件,则该文件属于可移植的执行体,因此,就可以到网络侧去进行获取相关资源。其中,具体在从网络侧获取关于待恢复文件时,可以是根据待恢复文件的文件名等属性信息,从网络侧获取该待恢复文件。其中,该网络侧可以是指恢复工具的云端服务器,也即,可以在云端服务器保存各个常用可执行程序的完整依赖文件包,当发现某可执行程序的依赖文件无法从本地恢复时,就可以从该云端服务器获取到待恢复的文件。在从网络侧获取到待恢复的文件之后,就可以将其保存到可执行程序的依赖文件所在的本地文件夹下。例如,不能正常运行的可执行程序是“MicrosoftOfficeVisio2003”,其中依赖文件所在的本地文件夹是C:\ProgramFiles\Microsoft0ffice\Visioll,假设其中被删除的依赖文件是VIS0CX.DLL,则如果在本地无法将其恢复,就可以从网络侧去获取该文件,然后将该文件保存到C:\ProgramFiles\Microsoft0ffice\Visioll这一文件夹中即可。这样,相当于“MicrosoftOfficeVisio2003”这一可执行程序重新获得了完整的依赖文件,因此,就可以正常运行了。需要说明的是,在实际应用中,可执行程序可能存在版本更新的问题,因此,针对同一可执行程序,在网络侧可以获取到多个版本,而需要恢复的文件可能仅仅是其中的某一个版本。因此,针对这种情况,在从网络侧获取待恢复文件时,可以连同待恢复文件对应的可执行程序的版本等属性信息共同进行搜索,以便找到最符合需求的文件。总之,通过本发明实施例提供的恢复可执行程序依赖文件的方法,如果待恢复文件的数据已被破坏,则可以从网络侧获取到该文件,并根据该文件对应的可执行程序,将该获取到的文件保存到可执行程序的依赖文件所在的本地文件夹中,使得可执行程序重新获得完整的依赖文件,进而使其恢复正常运行。可见,即使可执行程序的依赖文件在磁盘数据区中的数据已经被破坏,也能够为用户提供替代的文件,而不需要再重新下载安装文件并重新安装,因此节约了网络资源及时间成本。另一方面,对于本地未被破坏的其他依赖文件而言,也可以得到有效的利用,因此也相当于避免了对本地未被破坏的依赖文件造成浪费。与本发明实施例提供的恢复可执行程序依赖文件的方法相对应,本发明实施例还提供了一种恢复可执行程序依赖文件的装置,参见图3,该装置包括文件确定单元301,用于确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断单元302,用于判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;文件获取单元303,用于如果是,则从网络侧获取关于该待恢复的文件;添加单元304,用于将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。具体实现时,文件确定单元301具体可以用于将用户指定的文件确定为待恢复的文件;此时,该装置还可以包括程序确定单元,用于根据预置的可执行程序与依赖文件之间的对应关系,确定所述待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。或者,在另一种实现方式下,文件确定单元301具体可以用于当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。判断待恢复文件的数据是否已被破坏时,可以有多种方式,具体的,判断单元302具体可以包括第一判断子单元,用于对所述待恢复的文件进行恢复,如果未恢复成功,则所述待恢复的文件所在磁盘数据区中的数据已被破坏;或者,第二判断子单元,用于判断所述待恢复的文件所在磁盘数据区是否被其他文件覆盖,如果是,则所述待恢复的文件所在磁盘数据区的数据已被破坏。总之,通过本发明实施例提供的恢复可执行程序依赖文件的装置,在对已删除文件进行恢复的过程中,如果发现某文件是某可执行程序的依赖文件,并且该文件在磁盘数据区中的数据已被破坏,则可以从网络侧下载该待恢复文件,并将其添加到该可执行程序的依赖文件所在的本地文件夹中,这样,该可执行程序就可以依赖该从网络侧获取到的文件以及文件夹中的其他依赖文件来正常运行了。可见,通过本发明的方法,即使某些被破坏的依赖文件无法从本地恢复,也可以通过云端的支持,将其下载到本地,使得可执行程序重新获得完整的依赖文件,进而使其恢复正常运行。因此,不必再重新下载安装文件,更不需要重新进行安装,因此,可以节省网络资源,降低时间成本。另一方面,对于本地未被破坏的其他依赖文件而言,也可以得到有效的利用,因此也相当于避免了对本地未被破坏的依赖文件造成浪费。需要说明的是,由于装置的实施例与方法的实施例是对应的,因此,装置实施例中未详述部分可以参见方法实施例中的介绍,这里不再赘述。以上对本发明所提供的一种恢复可执行程序依赖文件的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。权利要求1.一种恢复可执行程序依赖文件的方法,其特征在于,包括确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;如果是,则从网络侧获取关于该待恢复的文件;将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。2.根据权利要求1所述的方法,其特征在于,所述确定待恢复的文件包括将用户指定的文件确定为待恢复的文件;所述方法还包括根据预置的可执行程序与依赖文件之间的对应关系,确定所述待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。3.根据权利要求1所述的方法,其特征在于,所述确定待恢复的文件包括当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。4.根据权利要求1所述的方法,其特征在于,所述判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏包括对所述待恢复的文件进行恢复,如果未恢复成功,则所述待恢复的文件所在磁盘数据区中的数据已被破坏。5.根据权利要求1所述的方法,其特征在于,所述判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏包括判断所述待恢复的文件所在磁盘数据区是否被其他文件覆盖,如果是,则所述待恢复的文件所在磁盘数据区的数据已被破坏。6.一种恢复可执行程序依赖文件的装置,其特征在于,包括文件确定单元,用于确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断单元,用于判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;文件获取单元,用于如果是,则从网络侧获取关于该待恢复的文件;添加单元,用于将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。7.根据权利要求6所述的装置,其特征在于,所述文件确定单元具体用于将用户指定的文件确定为待恢复的文件;所述装置还包括程序确定单元,用于根据预置的可执行程序与依赖文件之间的对应关系,确定所述待恢复的文件对应的可执行程序,并确定该可执行程序的依赖文件所在的本地文件夹。8.根据权利要求6所述的装置,其特征在于,所述文件确定单元具体用于当检测到某可执行程序无法正常运行时,将该可执行程序的依赖文件所在的本地文件夹中的所有文件,与预先获知的该可执行程序的所有依赖文件进行比对,根据比对结果,确定待恢复的文件。9.根据权利要求6所述的装置,其特征在于,所述判断单元包括第一判断子单元,用于对所述待恢复的文件进行恢复,如果未恢复成功,则所述待恢复的文件所在磁盘数据区中的数据已被破坏。10.根据权利要求6所述的装置,其特征在于,所述判断单元包括第二判断子单元,用于判断所述待恢复的文件所在磁盘数据区是否被其他文件覆盖,如果是,则所述待恢复的文件所在磁盘数据区的数据已被破坏。全文摘要本发明公开了一种恢复可执行程序依赖文件的方法及装置,其中,所述方法包括确定待恢复的文件,所述待恢复的文件为某可执行程序的依赖文件;判断该待恢复的文件所在磁盘数据区中的数据是否已经被破坏;如果是,则从网络侧获取关于该待恢复的文件;将从网络侧获取到的文件添加到所述可执行程序的依赖文件所在的本地文件夹中,以便所述可执行程序正常运行。通过本发明,在对可执行程序的依赖文件进行恢复的过程中,如果依赖文件的数据已经被破坏,可以不需要重新安装,即可使得可执行程序恢复正常运行。文档编号G06F11/14GK102298548SQ20111028438公开日2011年12月28日申请日期2011年9月22日优先权日2011年9月22日发明者于天佐,刘科,唐智,陆坡,陈佃晓,陈耀攀申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1