一种文件修复方法及装置的制作方法

文档序号:6435999阅读:136来源:国知局
专利名称:一种文件修复方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种文件修复方法及装置。
背景技术
移动存储设备是指可以在不同终端间移动的存储设备,包括U盘、移动硬盘等等,人们经常使用移动存储设备进行文件的备份、携带及转移。一些移动存储设备带有USB(Universal Serial BUS,通用串行总线)接口,在需要对这种移动存储设备进行数据的读写时,需要将其通过USB 口连接到计算机上,并且在使用完毕之后,需要按照规定的程序将其从计算机上卸载之后才能从USB 口拔出。例如,通常需要用户点击任务栏右下角中显示为“安全删除硬件”的按钮,当弹出“安全删除USB Mass Storage Device-驱动器”提示之后,点击该提示,等到“安全删除硬件”按钮消失之后,即可将移动存储设备从USB 口拔出。但是,在日常应用中,如果将移动存储设备从USB 口拔出之前,忘记了执行卸载操作,或者执行卸载操作不彻底(例如提示“无法停止”等等),或者由于误操作等,而直接将移动存储设备从USB 口拔了出来(通常将这种现象统称为移动存储设备的“非法拔出”),则可能会造成移动存储设备中的文件被破坏。因此,迫切需要本领域技术人员解决的技术问题就在于,如果移动存储设备被非法拔出,并且其中的文件被破坏,如何对被破坏的文件进行修复。

发明内容
本发明提供了一种文件修复方法及装置,能够在移动存储设备被非法拔出,并且其中的文件被破坏的情况下,对被破坏的文件进行修复。本发明提供了如下方案
一种文件修复方法,包括
检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作;
当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息;
如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存;
当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损
坏;
如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。其中,所述利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复包括
将所述保存的记录中的文件来源路径提供给用户,以便用户从所述文件来源路径重新获取所述文件,用以替换所述已损坏的文件。其中,所述利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复包括 从所述保存的记录中的文件来源路径获取所述文件;
用所述获取到的文件替换所述已损坏的文件。优选地,如果检测到非法拔出所述移动存储设备的消息,所述方法还包括
将存入到所述移动存储设备中的文件进行备份;
如果利用所述保存的记录中的文件来源路径对已损坏的文件进行修复不成功,则利用所述备份的文件对所述已损坏的文件进行修复。其中,所述判断所述移动存储设备中的文件是否已损坏包括
识别所述移动存储设备中的文件是否具有结束标识;如果不具有,则确定所述移动存储设备中的文件已损坏;
如果具有,则根据所述文件来源路径读取源文件的数据,将所述移动存储设备中的文件的数据与所述源文件的数据进行比对,如果一致,则确定所述移动存储设备中的文件未已损坏,如果不一致,则确定所述移动存储设备中的文件已损坏。优选地,还包括
如果检测到正常拔出所述移动存储设备的消息,则将所述记录进行销毁。一种文件修复装置,包括
监控单元,用于检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操
作;
记录单元,用于当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息;
保存单元,用于如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保
存;
判断单元,用于当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏;
修复单元,用于如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。其中,所述修复单元包括
路径提供子单元,用于将所述保存的记录中的文件来源路径提供给用户,以便用户从所述文件来源路径重新获取所述文件,用以替换所述已损坏的文件。其中,所述修复单元包括
文件获取子单元,用于从所述保存的记录中的文件来源路径获取所述文件;
替换子单元,用于用所述获取到的文件替换所述已损坏的文件。优选地,还包括
文件备份单元,用于如果检测到非法拔出所述移动存储设备的消息,将存入到所述移动存储设备中的文件进行备份;
补充修复单元,用于如果利用所述保存的记录中的文件来源路径对已损坏的文件进行修复不成功,则利用所述备份的文件对所述已损坏的文件进行修复。其中,所述判断单元包括
识别子单元,用于识别所述移动存储设备中的文件是否具有结束标识;如果不具有,则确定所述移动存储设备中的文件已损坏; 比对子单元,用于如果具有,则根据所述文件来源路径读取源文件的数据,将所述移动存储设备中的文件的数据与所述源文件的数据进行比对,如果一致,则确定所述移动存储设备中的文件未已损坏,如果不一致,则确定所述移动存储设备中的文件已损坏。优选地,还包括
销毁单元,用于如果检测到正常拔出所述移动存储设备的消息,则将所述记录进行销毁。根据本发明提供的具体实施例,本发明公开了以下技术效果
通过本发明,可以在检测到向移动存储设备存入文件的操作时,对该存入的文件的来源路径以及移动存储设备的标识进行记录,一旦检测到移动存储设备被非法拔出时,就可以将该记录进行保存;这样,当检测到该移动存储设备再次被插入时,可以首先判断其中的文件是否被破坏,如果是,则可以通过该文件的来源路径对被破坏的文件进行修复。也即,通过本发明,能够在移动存储设备被非法拔出,并且其中的文件被破坏的情况下,对被破坏的文件进行修复。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的方法的流程 图2是本发明实施例提供的装置的示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。参见图1,本发明实施例提供的文件修复方法包括以下步骤
SlOl :检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作;
首先需要说明的是,由于向移动存储设备中写一个文件时,并不是立刻保存到移动存储设备中,而是先存到缓冲区内,等积累到一定程度再一起保存到移动存储设备中。如果没有成功卸载就非法拔出移动存储设备,系统是不知道的,fopen、fwrite等函数都依然返回正确,直到操作系统要把缓冲区中的数据存入到移动存储设备中的时候,才会提示I/O错误,因此,很多数据都会因为这个不及时的错误报告而丢失。由以上所述可知,在实际应用中,如果执行了向移动存储设备中存入文件的操作,则一旦移动存储设备被非法拔出,就会存在文件已损坏的风险,并且已损坏的文件就是该被存入的文件,而移动存储设备中的其他原有文件,则一般不会已损坏。因此,在本发明实施例中,可以仅对向移动存储设备中存入文件的操作进行监控。其中,由于在移动存储设备通过USB接口插入,或者从USB 口拔出时,USB驱动程序都会对系统配置文件进行修改,例如USB驱动程序会在插入或拔出时往“ /proc/scsi/usb-storage-0/0”里面记上“Attached :Yes or No”,因此,通过查看这个文件就可以检测移动存储设备是否插入或拔出了。S102:当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息;
其中,在向移动存储设备中存入文件时,通常是将计算机本地的某文件复制后,粘贴到移动存储设备中,或者将计算机本地的某文件“发送到”移动存储设备中,等等。因此,本发明实施例所述的“文件的来源路径”就是指,存入移动存储设备的文件在计算机本地中的路径。例如,某文件在计算机本地中的路径是“F: \工作相关\XX. txt”,则将该文件存入到移动存储设备中时,该文件的来源路径就是“F:\工作相关\XX. txt”。移动存储设备的标识信息是指可以唯一标识一个移动存储设备的信息,一个移动存储设备在出厂时都会带有唯一性的标识,例如,U盘的序列号等等。因此,具体实现时,就可以通过获取移动存储设备的序列号来获取移动存储设备的标识信息,例如,通过DriveGetSerial这一函数,即可获取到移动存储设备的序列号,然后记录下来即可。当然,将一个移动存储设备插入到计算机上之后,可能会向其中存入多个文件,此时,可以以表格的方式记录下各个文件的来源路径,这些文件的来源路径对应同一个移动存储设备标识。S103 :如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存; 当将移动存储设备从USB 口擦除时,如果是采用正常的卸载程序成功卸载,则系统可
以产生一个代表正常拔出的消息,如“ I RP_MN_REMOVE_DEV I CE ” ;而如果非法拔出一个移动存储设备,则当系统发现之后,会产生一个代表非法拔出的消息,如“IRP_MN_SURPRISE_REMOVAL”。因此,通过获取系统产生的消息,即可判断出移动存储设备是正常拔出,还是被非法拔出。如果被非法拔出,则可以将之前记录的信息进行保存,以供后续使用。当然,如果是正常拔出,则一般情况下不会出现文件已损坏的现象,因此,为了避免对存储空间造成浪费,可以将之前获得的记录进行销毁。S104:当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏;
如果再次检测到有移动存储设备插入到USB 口,可以首先获取该移动存储设备的标识信息(同样可以采用DriveGetSerial函数来获取移动存储设备的序列号的方式,当然也可以采用其他方式来实现,这里不进行限定),然后查看保存的记录中是否存在该标识信息对应的记录,如果有,则证明该移动存储设备上次插入到该计算机上时,曾经被非法拔出过,进而,就可以进一步判断其中的文件是否已损坏。其中,如前文所述,如果由于移动存储设备被非法拔出而对文件造成损坏,则通常是由于文件的数据还没有完全写入到移动存储设备造成的,因此,这种已损坏的文件在数据上通常是不完整的。而一个完整的文件通常会具有结束标识,因此,在判断移动存储设备中的文件是否已损坏时,就可以首先识别所述移动存储设备中的文件是否具有结束标识,如果不具有结束标识,则证明该文件的数据是不完整的,因此,可以确定该文件已经已损坏。如果一个文件的数据具有结束标识,则可以根据该文件的来源路径读取源文件的数据,将移动存储设备中的当前文件的数据与源文件的数据进行比对,如果一致(例如,文件大小相等、MD5值相同等等),则确定该移动存储设备中的文件未已损坏,如果不一致,则确定该移动存储设备中的文件已损坏。或者,在实际应用中,也可以直接将移动存储设备中的文件的数据与源文件的数据进行比对,如果两者一致,则证明文件未被破坏,如果不一致,则证明文件已经被破坏。需要说明的是,本发明实施例所述的文件已损坏,可以包括文件全部损坏的情况,也可以包括部分损坏的情况(例如,一个文件包中的部分文件已损坏,就可以称为部分损坏)。S105:如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。当移动存储设备再次被插入时,如果发现该移动存储设备在上次插入时,被非法拔出,并且其中的文件已损坏,就可以利用之前保存的关于文件的来源路径,对已损坏的文件进行修复。具体在利用文件的来源路径对已损坏的文件进行修复时,可以采取自动替换或者半自动替换等多种实现方式。其中,所谓自动替换是指,直接从记录中的文件来源路径获取已损坏文件的源文件,然后直接用该源文件替换已损坏的文件即可。所谓半自动替换是指,可以首先将记录的文件来源路径提供给用户,然后由用户手动根据该来源路径重新获取文件,并替换已损坏的文件,等等。当然还可以有其他的实现方式,这里不再一一列举。总之,在本发明实施例中,由于意识到存入到移动存储设备中的文件,通常是从计算机中拷贝过去的,因此,在计算机中通常保留有源文件,这样,当移动存储设备中的文件已损坏时,就可以利用计算机中保留的源文件,对其进行修复。当然,在实际应用中,还可能出现以下情况当移动存储设备再次被插入到计算机上时,计算机中关于某已损坏文件的源文件可能已经被删除或者移动到其他的路径下,此时,就无法根据文件的来源路径对已损坏的文件进行修复了。为了应对这种情况的发生,在本发明实施例中,还可以在检测到非法拔出移动存储设备的消息时,对存入到移动存储设备的文件进行备份,这样,如果利用记录中的文件来源路径对已损坏的文件进行修复不成功,则可以利用备份的文件对已损坏的文件进行修复。当然,也可以不是在发现移动存储设备被非法拔出时就对源文件进行备份,例如,还可以对源文件进行跟踪,在发现源文件被删除或者被移动时,再对源文件进行备份。或者,在发现源文件被移动时,还可以将之前保存的关于该文件的来源路径修改为移动后的路径,这样,同样可以实现对已损坏的文件的修复。与本发明实施例提供的文件修复方法相对应,本发明实施例还提供了一种文件修复装置,参见图2,该装置可以包括
监控单元201,用于检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作;
记录单元202,用于当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息;
保存单元203,用于如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存;
判断单元204,用于当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏;
修复单元205,用于如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。其中,具体在利用保存的文件来源路径对已损坏的文件进行修复时,可以有多种实现方式,例如,在其中一种实现方式下,修复单元205具体可以包括以下子单元
路径提供子单元,用于将所述保存的记录中的文件来源路径提供给用户,以便用户从所述文件来源路径重新获取所述文件,用以替换所述已损坏的文件。或者,在另一种实现方式下,修复单元205具体也可以包括以下子单元
文件获取子单元,用于从所述保存的记录中的文件来源路径获取所述文件;
替换子单元,用于用所述获取到的文件替换所述已损坏的文件。为了避免来源路径下的源文件被删除或者被移动到其他路径下,该装置还可以包括
文件备份单元,用于如果检测到非法拔出所述移动存储设备的消息,将存入到所述移动存储设备中的文件进行备份;
补充修复单元,用于如果利用所述保存的记录中的文件来源路径对已损坏的文件进行修复不成功,则利用所述备份的文件对所述已损坏的文件进行修复。当然,具体当可移动终端设备再次被插入时,判断移动存储设备中的文件是否已损坏的方法,也可以有多种,例如,在其中一种实现方式下,判断单元204可以包括以下子单元
识别子单元,用于识别所述移动存储设备中的文件是否具有结束标识;如果不具有,则确定所述移动存储设备中的文件已损坏;
比对子单元,用于如果具有,则根据所述文件来源路径读取源文件的数据,将所述移动存储设备中的文件的数据与所述源文件的数据进行比对,如果一致,则确定所述移动存储设备中的文件未已损坏,如果不一致,则确定所述移动存储设备中的文件已损坏。如果发现移动存储设备被正常拔出,则存入其中的文件一般不会已损坏,因此,也就没有必要再对来源路径等信息进行存储。此时,该装置还可以包括
销毁单元,用于如果检测到正常拔出所述移动存储设备的消息,则将所述记录进行销毁。总之,通过本发明实施例提供的文件修复装置,可以在检测到向移动存储设备存入文件的操作时,对该存入的文件的来源路径以及移动存储设备的标识进行记录,一旦检测到移动存储设备被非法拔出时,就可以将该记录进行保存;这样,当检测到该移动存储设备再次被插入时,可以首先判断其中的文件是否被破坏,如果是,则可以通过该文件的来源路径对被破坏的文件进行修复。也即,通过本发明,能够在移动存储设备被非法拔出,并且其中的文件被破坏的情况下,对被破坏的文件进行修复。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上对本发明所提供的文件修复方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种文件修复方法,其特征在于,包括 检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作; 当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息; 如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存; 当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏; 如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。
2.根据权利要求1所述的方法,其特征在于,所述利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复包括 将所述保存的记录中的文件来源路径提供给用户,以便用户从所述文件来源路径重新获取所述文件,用以替换所述已损坏的文件。
3.根据权利要求1所述的方法,其特征在于,所述利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复包括 从所述保存的记录中的文件来源路径获取所述文件; 用所述获取到的文件替换所述已损坏的文件。
4.根据权利要求1至3任一项所述的方法,其特征在于,如果检测到非法拔出所述移动存储设备的消息,所述方法还包括 将存入到所述移动存储设备中的文件进行备份; 如果利用所述保存的记录中的文件来源路径对已损坏的文件进行修复不成功,则利用所述备份的文件对所述已损坏的文件进行修复。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述判断所述移动存储设备中的文件是否已损坏包括 识别所述移动存储设备中的文件是否具有结束标识;如果不具有,则确定所述移动存储设备中的文件已损坏; 如果具有,则根据所述文件来源路径读取源文件的数据,将所述移动存储设备中的文件的数据与所述源文件的数据进行比对,如果一致,则确定所述移动存储设备中的文件未已损坏,如果不一致,则确定所述移动存储设备中的文件已损坏。
6.根据权利要求1至3任一项所述的方法,其特征在于,还包括 如果检测到正常拔出所述移动存储设备的消息,则将所述记录进行销毁。
7.一种文件修复装置,其特征在于,包括 监控单元,用于检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作; 记录单元,用于当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息; 保存单元,用于如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存; 判断单元,用于当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏;修复单元,用于如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。
8.根据权利要求7所述的装置,其特征在于,所述修复单元包括 路径提供子单元,用于将所述保存的记录中的文件来源路径提供给用户,以便用户从所述文件来源路径重新获取所述文件,用以替换所述已损坏的文件。
9.根据权利要求7所述的装置,其特征在于,所述修复单元包括 文件获取子单元,用于从所述保存的记录中的文件来源路径获取所述文件; 替换子单元,用于用所述获取到的文件替换所述已损坏的文件。
10.根据权利要求7至9任一项所述的装置,其特征在于,还包括 文件备份单元,用于如果检测到非法拔出所述移动存储设备的消息,将存入到所述移动存储设备中的文件进行备份; 补充修复单元,用于如果利用所述保存的记录中的文件来源路径对已损坏的文件进行修复不成功,则利用所述备份的文件对所述已损坏的文件进行修复。
11.根据权利要求7至9任一项所述的装置,其特征在于,所述判断单元包括 识别子单元,用于识别所述移动存储设备中的文件是否具有结束标识;如果不具有,则确定所述移动存储设备中的文件已损坏; 比对子单元,用于如果具有,则根据所述文件来源路径读取源文件的数据,将所述移动存储设备中的文件的数据与所述源文件的数据进行比对,如果一致,则确定所述移动存储设备中的文件未已损坏,如果不一致,则确定所述移动存储设备中的文件已损坏。
12.根据权利要求7至9任一项所述的装置,其特征在于,还包括 销毁单元,用于如果检测到正常拔出所述移动存储设备的消息,则将所述记录进行销毁。
全文摘要
本发明公开了一种文件修复方法及装置,其中,所述方法包括检测到移动存储设备插入后,监控向所述移动存储设备存入文件的操作;当所述移动存储设备中存入文件时,记录该文件的来源路径以及所述移动存储设备的标识信息;如果检测到非法拔出所述移动存储设备的消息,则将所述记录进行保存;当检测到所述移动存储设备再次插入时,判断所述移动存储设备中的文件是否已损坏;如果是,则利用所述保存的记录中的文件来源路径对所述已损坏的文件进行修复。通过本发明,能够在移动存储设备被非法拔出,并且其中的文件被破坏的情况下,对被破坏的文件进行修复。
文档编号G06F11/14GK103064752SQ201110321119
公开日2013年4月24日 申请日期2011年9月27日 优先权日2011年9月27日
发明者陈擎月, 张辉 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1