一种安卓系统文件的恢复方法及装置与流程

文档序号:11154725阅读:336来源:国知局
一种安卓系统文件的恢复方法及装置与制造工艺

本发明涉及计算机技术领域,尤其涉及一种安卓系统文件恢复方法及装置。



背景技术:

在安卓(Android)开发中,各种文件一般都存储在对应应用程序的目录下或者sdcard中,其中,这些文件包括一些临时文件,例如图片缓存、网络缓存等,还包括一些重要文件,例如涉及应用程序的状态、数据库之类的文件,随着目前Android中各类清理软件的广泛使用,而各个清理软件实现的原理不尽相同,经常会出现存储在应用程序目录的一些重要文件被清理软件当作垃圾文件而清除的现象。

现有技术中,当需要恢复被删除的文件时,需要对Android进行root操作来进行处理,或者需要对被删文件的整个磁盘进行处理恢复。

本申请发明人在实现本申请实施例技术方案的过程中,至少发现现有技术中存在如下技术问题:

现有技术中在对被删除的文件进行恢复时,由于需要对Android进行root操作或者需要对被删文件的整个磁盘进行处理恢复而存在操作复杂、不能有针对性地对文件进行恢复的问题。



技术实现要素:

本发明提供一种安卓系统文件的恢复方法及装置,可以解决现有技术中文件恢复方法操作复杂、不能有针对性地对文件进行恢复的技术问题。

第一方面,本发明实施例提供了一种安卓系统文件的恢复方法,包括:当要恢复被删除的目标文件时,创建临时目录;根据预存的所述目标文件的原始状态信息中包含的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,其中,所述原始状态信息还包括所述目标文件的原始文件路径;将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置。

可选的,所述将所述目标文件恢复至所述临时目录,包括:获取所述目标文件的文件读取流;获取所述目标文件的文件大小;根据所述文件读取流在所述临时目录中写入所述目标文件的数据;根据所述文件大小,控制写入所述目标文件的数据大小。

可选的,在恢复目标文件之前,还包括:检测目标文件是否被删除。

可选的,所述检测目标文件是否被删除,包括:获取所述目标文件的当前文件路径;获取所述目标文件的原始文件路径;若所述当前文件路径与所述原始文件路径不一致,则确定所述目标文件被删除。

可选的,在所述获取所述目标文件的原始文件路径之前,还包括:根据预存存的文件识别码确定所述目标文件的原始文件路径。

另一方面,本发明实施例提供了一种安卓系统文件恢复的装置,包括:创建模块,用于要恢复被删除的目标文件时,创建临时目录;恢复模块,用于根据预存的所述目标文件的原始状态信息中包含的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,其中,所述原始状态信息还包括原始文件路径;还原模块,用于将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置。

可选的,所述恢复模块包括,第一获取单元,用于获取所述目标文件的文件读取流;第二获取单元,用于获取所述目标文件的文件大小;写入单元,用于根据所述文件读取流在所述临时目录中写入所述目标文件的数据;控制单元,用于根据所述文件大小,控制写入所述目标文件的数据大小。

可选的,所述装置还包括检测模块,所述检测模块用于检测目标文件是否被删除。

可选的,所述检测模块,包括:第三获取单元,用于获取目标文件的当前文件路径;第四获取单元,用于获取目标文件的原始文件路径;第一确定单元,用于当所述当前文件路径与所述原始文件路径不一致时,确定所述目标文件被删除。

可选的,所述检测模块还包括:第二确定子单元,用于在获取目标文件的原始文件路径之前,根据预存的文件识别码确定所述目标文件的原始文件路径。

与现有技术相比,本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本申请实施例提供的一种安卓系统文件的恢复方法及装置,在Android系统中存储了所有文件的原始状态信息,当目标文件被删除时,可以根据文件的原始状态信息中的文件读取流和文件大小,将其恢复至临时目录中,并根据原始文件路径,将临时目录中的目标文件进行路径还原,从而实现目标文件的恢复,而无需对系统进行root操作或将文件所在的整个磁盘进行恢复,解决了现有的文件恢复方法操作复杂,无法有针对性地对被删文件进行恢复的问题,可以有效地、有针对性地对被删除文件进行恢复,提高了文件恢复的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中Android系统文件恢复方法的流程图;

图2为本发明实施例中Android系统文件恢复装置的结构示意图。

具体实施方式

本申请实施例通过提供一种安卓系统文件的恢复方法及装置,可以解决现有技术中文件恢复方法操作复杂、不能有针对性地对文件进行恢复的技术问题,可以有效地、有针对性地对被删除文件进行恢复,提高文件恢复的效率。

本申请实施例中的技术方案,总体思路如下:当要恢复被删除的目标文件时,创建临时目录,并根据预存的所述目标文件的原始状态信息中的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,并且所述原始状态信息还包括所述目标文件的原始文件路径;再将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置。

上述文件恢复方法中,由于在Android系统中存储了所有文件的原始状态信息,原始状态信息包括文件读取流、文件大小和原始文件路径,当目标文件被删除时,可以根据目标文件的文件读取流和文件大小将其恢复至临时目录中,并根据原始文件路径将临时目录中的目标文件还原至原始文件路径指向的位置,而无需对系统进行root操作或将删除的文件所在的整个磁盘进行恢复,解决了现有技术中文件恢复方法操作复杂、不能有针对性地对文件进行恢复的技术问题,可以有效地、有针对性地对被删除文件进行恢复,提高文件恢复的效率。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

实施例一

本实施例提供一种Android系统文件恢复的方法,请参考图1,所述方法包括:

步骤S101,当要恢复被删除的目标文件时,创建临时目录;

步骤S102,根据预存的所述目标文件的原始状态信息中包含的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,其中,所述原始状态信息还包括所述目标文件的原始文件路径;

步骤S103,将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置;

举例来说,上述方法可以应用于安卓系统的各种装置中,比如智能手机、平板电脑、智能手环等。

具体来讲,用户在使用安卓系统时,为了提高系统的性能,常常会利用清理软件对安卓系统中的文件进行清理,在清理过程中,一部分重要文件被当做垃圾文件删除,本发明描述了一种android中文件被删除后恢复的方法,当要恢复被删除的目标文件时,创建临时目录;,并根据预存的所述目标文件的原始状态信息中的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,然后将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置,这样不需要对android设备进行root操作,也不要单独通过对磁盘进行处理恢复,只需要在应用层处理就能将被删除的文件进行恢复,解决了现有技术中文件恢复方法操作复杂、不能有针对性地对文件进行恢复的技术问题,可以有效地、有针对性地对被删除文件进行恢复,提高文件恢复的效率。

接下来,结合图1对本申请提供的Android系统文件恢复的方法进行详细介绍:

首先,执行步骤S101,当要恢复被删除的目标文件时,创建临时目录。

具体而言,当要恢复被删除的目标文件时,首先创建一个临时目录,该临时目录为一个空目录,可以用来存储被删除然后进行恢复的的目标文件。

然后,执行步骤S102:

步骤S102,根据预存的所述目标文件的原始状态信息中包含的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,其中,所述原始状态信息还包括所述目标文件的原始文件路径;

具体而言,在安卓系统中存储所有文件的原始状态信息,这些状态信息包括文件识别码、文件读取流、文件大小、原始文件路径等信息,其中,文件的识别码是指能够唯一识别该文件的特征,例如可以是文件名和md5校验码,文件读取流即文件的读取方式,文件的大小即文件的存储容量,原始文件路径可以作为判断目标文件是否被删除的依据,以及将目标文件的路径进行还原等操作。

在具体实施过程中,在安卓系统中,可以对系统中存储的文件进行监听,每个待监听的文件都有其FileObserver对象,可以将文件的原始状态信息:文件识别码、文件读取流、文件大小和原始文件路径当做属性置于FileObserver类的实现类中,其中,文件识别码包括文件名和md5校验码,md5校验码的获取可以使用系统提供的MessageDigest工具类来实现,并通过创建FileInputStream对象来保存原始文件的文件读取流,上述FileInputStream对象的参数就是该文件的原始文件路径,然后通过FileInputStream对象的available方法来获取可以方便后续找到被删文件的硬盘位置,这样一个带有待监听文件的各种属性的FileObserver对象创建完成了,即完成了所有文件的原始状态信息的存储。接着可以通过一个哈希表存储上述对象,需要说明的是,哈希表是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这样可以加快查找速度,这个映射函数则称为散列函数,用于存放记录的数组称做散列表。通过哈希表存储有利于后续恢复时查找文件识别码、文件读取流、文件大小等一系列信息,在具体的应用过程中,哈希表可以通过HashMap类的put方法创建。

除了上述通过FileObserver对象的属性进行文件原始状态信息的存储之外,还可以通过建立一关联目录或者其他方式来存储文件的原始状态信息,本发明对此不做具体限定。

需要说明的是,各种系统采用的文件系统格式不尽相同,但是各种系统的文件系统有一个共同点,就是其单独在硬盘上开辟一块区域作为存储整个磁盘中文件的路径等记录,用来管理文件,其最基本的功能就是记录文件的地址,以供操作系统读取,安卓系统的文件系统在删除文件时,都是删除其文件的路径索引,而并没有对该文件的存储内容进行改变,即在删除文件时通知操作系统,该位置可以写入新的数据了。

具体地,可以通过以下步骤来对删除的目标文件进行恢复:获取所述目标文件的文件读取流;获取所述目标文件的文件大小;在具体实施过程中,获取所述文件读取流和获取所述文件大小两个步骤不分先后顺序,可以先获取所述文件读取流,也可以先获取所述文件大小,还可以同时获取所述文件读取流和所述文件大小。由于文件读取流和文件大小在文件创建时被保存到文件的原始状态信息中,可以在原始状态信息中,获取目标文件的文件读取流和文件大小,然后根据所述文件读取流在所述临时目录中写入所述目标文件的数据;其中文件读取流中包含了文件的索引记录,当目标文件被删除时,可以通过文件读取流对目标文件进行读取,并写入到临时目录中,即对目标文件进行恢复,然后根据所述文件大小控制写入所述目标文件的数据大小,由于要保持临时目录中的数据与原始文件的一致性,需要通过原始文件的文件大小对写入的数据进行控制。

可选地,为了方便将被删除的目标文件进行管理与操作,在创建临时目录后,可以在临时目录中创建一个以目标文件的文件名为名称的空文件,以便后续的文件恢复以及各个文件的一一对应。

在具体实施过程中,首先读取FileObserver对象的属性,并创建一个临时目录,用来存放被删除然后恢复的文件,这里将临时目录用tmp来指代,首先以被删除的文件的文件名在tmp下创建一个空文件,然后循环调用流对象的read方法,同时循环写入到创建好的空文件中,直到写入的数据的大小达到原始文件大小为止,具体为,首先创建一个以被删除的文件的文件名为名称的空文件对象,该空文件对象位于tmp目录下,对象名为tmpfile,然后创建其写入流fs(就是创建tmpfile文件的FileOutputStream对象,这里将该对象命名为fs),然后定义一个临时存储流中读取数据的对象buffer,buffer类型是byte数组,然后循环读取fileinput,也就是调用其read方法,并将buffer作为参数,当每一次buffer被赋值时调用fs的write方法进行写入,这样一个完整的文件就在tmp目录下恢复了。

然后,执行步骤S103,将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置。

需要说明的是,将被删除的文件恢复至临时目录之后,其只是将原删除的文件的内容恢复,还需要进一步将文件的路径还原。

在具体实施过程中,首先读取临时目录tmp下的文件,先对tmp目录进行遍历,得到该目录下每个文件的文件名,然后通过文件名创建其File对象,接着计算出tmp目录下每个文件的md5效验码,需要说明的是,md5校验和(checksum)是通过对接收的传输数据执行散列运算来检查数据的正确性。计算出的散列值拿来和随数据传输的散列值比较。如果两个值相同,说明传输的数据完整无误、没有被窜改过,在本实施例中,可以通过原始文件md5校验码与恢复的文件的md5校验码的比较,来检验恢复的文件是否与原文件是一致的,即用来检验文件恢复的可靠性和准确性。并通过文件名在之前创建好的哈希表中进行查找,若查找到了该文件的FileObserver对象,再通过其之前保存的文件md5值与当前的md5值进行效验比较,如果相同则表明是同一个文件,则直接调用File对象的renameTo方法将文件移动到原本位置,这样就完成看了文件路径的还原,依次执行直到整个tmp下文件都被恢复到期原本位置。

可选地,在恢复目标文件之前,还包括:检测目标文件是否被删除,具体来说,检测目标文件是否被删除包括如下步骤:获取所述目标文件的当前文件路径;获取所述目标文件的原始文件路径;若所述当前文件路径和所述原始文件路径不一致,则确定所述目标文件是否被删除。需要说明的是,在具体实施过程中,而在获取目标文件的原始文件路径时,还需要对目标文件进行确定,本实施例中可以通过文件识别码进行确定,文件的识别码是指能够唯一识别该文件的特征,例如可以是文件名,其中文件名可以用来确定目标文件,并作为创建一个临时目录下空文件的基础,本申请的实施例中,文件识别码还包括md5校验码,该md5校验码则可以用来检验恢复的文件是否与原文件一致,即用来检验文件恢复的可靠性和准确性。

在具体实施过程中,在安卓系统中提供了FileObserver类用于监听指定文件路径的变化,从而监听该文件的删除操作,FileObserver对象创建时接受一个路径作为参数,并通过其startWatching方法来监听该路径指定文件或者目录的变化,这里的路径可以通过外部进行传入,可以是目录或者文件,如果是目录这里需要递归创建FileObserver对象,这样可以通过FileObserver对象就能达到监听文件路径的变化的目的,为了进一步对文件进行恢复以及方便管理,在本实施例中将对每个需要监听的文件都创建一个FileObserver对象,当FileObserver对象调用startWatching方法开启文件状体监听之后,重写其onEvent方法用来监听想要监听的事件,这里将监听FileObserver.DELETE事件FileObserver.DELETE是FileObserver内部定义好的删除文件消息的常量,当在onEvent方法中收到了FileObserver.DELETE消息表明文件被删除。

本发明实施中通过文件名和md5校验码来对文件进行识别,在具体实施过程中,可以通过其他特征来对文件进行识别,本发明实施例中可以通过目标文件的路径的变化来检测目标文件是否被删除,在具体实施过程中还可以通过目标文件的文件内容的改变或其他方式来检测,对此本发明对此不作限制。

实施例二

本实施例提供了一种安卓系统文件恢复装置,请参考图2,所述装置包括:

创建模块201,用于要恢复被删除的目标文件时,创建临时目录;

恢复模块202,用于根据预存的所述目标文件的原始状态信息中包含的文件读取流和文件大小,将所述目标文件恢复至所述临时目录,其中,所述原始状态信息包括所述目标文件的文件读取流、文件大小和原始文件路径;

还原模块203,用于将所述临时目录中的所述目标文件还原至所述原始文件路径指向的位置。

在本申请实施例中,所述恢复模块202,包括:

第一获取单元,用于获取所述目标文件的文件读取流;

第一获取单元,用于获取所述目标文件的文件大小;

写入单元,用于根据所述文件读取流在所述临时目录中写入所述目标文件的数据;

控制单元,用于根据所述文件大小,控制写入所述目标文件的数据大小。

在本申请实施例中,所述装置还包括检测模块,所述检测模块用于检测目标文件是否被删除。

在本申请实施例中,所述检测模块包括:

第三获取单元,用于获取目标文件的当前文件路径;

第四获取单元,用于获取目标文件的原始文件路径;

确定单元,用于当所述当前文件路径和所述原始文件路径不一致时,确定所述目标文件被删除。

在本申请实施例中,所述检测模块还包括:

第二确定子单元,用于在获取目标文件的原始文件路径之前,根据预存的文件识别码确定所述目标文件的原始文件路径。

前述实施例中的安卓系统文件恢复方法的各种变化方式和具体实例同样适用于本实施例的安卓系统文件恢复装置,通过前述对安卓系统文件恢复方法的详细描述,本领域技术人员可以清楚的知道本实施例中的文件恢复装置,所以为了说明书的简洁,在此不再详述。

与现有技术相比,本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本申请实施例提供的一种安卓系统文件的恢复方法及装置,在Android系统中存储了所有文件的原始状态信息,当目标文件被删除时,可以根据文件的原始状态信息中的文件读取流和文件大小,将其恢复至临时目录中,并根据原始文件路径,将临时目录中的目标文件进行路径还原,从而实现目标文件的恢复,而无需对系统进行root操作或将文件所在的整个磁盘进行恢复,解决了现有的文件恢复方法操作复杂,无法有针对性地对被删文件进行恢复的问题,可以有效地、有针对性地对被删除文件进行恢复,提高了文件恢复的效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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