发明内容
本发明提供一种生成文件预览的方法及装置,能够避免在生成预览的过程中,影响其他已删除文件的可恢复性。
本发明提供了如下方案:
一种生成文件预览的方法,包括:
扫描硬盘,生成已删除文件列表;
针对所述已删除文件列表中的已删除可视化文件,获取其数据所在的数据区;
从所述数据区将所述数据读取到内存中;
在内存中对所述数据进行解码,生成关于所述已删除可视化文件可视化内容的预览;
其中,所述在内存中对所述数据进行解码包括:
分析文件流中的文件头,判断文件格式,根据所述文件格式,生成关于所述已删除可视化文件可视化内容的预览。
优选地,还包括:
当用户根据所述已删除文件可视化内容的预览选择某文件时,将所述选择的文件作为需要恢复或者需要彻底删除的文件。
其中,所述针对所述已删除文件列表中的已删除可视化文件,获取其数据所在的数据区包括:
针对所述已删除文件列表中的特定类型的已删除可视化文件,获取其数据所在的数据区。
其中,所述特定类型包括图片、视频。
优选地,还包括:
如果文件头被破坏,则根据文件格式为其重新填写文件头,以生成关于所述已删除可视化文件可视化内容的预览。
一种生成文件预览的装置,包括:
列表生成单元,用于扫描硬盘,生成已删除文件列表;
数据区获取单元,用于针对所述已删除文件列表中的已删除可视化文件,获取其数据所在的数据区;
数据读取单元,用于从所述数据区将所述数据读取到内存中;
预览生成单元,用于在内存中对所述数据进行解码,生成关于所述已删除可视化文件可视化内容的预览;
其中,所述预览生成单元包括:
分析子单元,用于分析文件流中的文件头,判断文件格式,根据所述文件格式,生成关于所述已删除可视化文件可视化内容的预览。
优选地,还包括:
文件确定单元,用于当用户根据所述已删除文件可视化内容的预览选择某文件时,将所述选择的文件作为需要恢复或者需要彻底删除的文件。
其中,所述数据区获取单元具体用于:
针对所述已删除文件列表中的特定类型的已删除可视化文件,获取其数据所在的数据区。
其中,所述特定类型包括图片、视频。
优选地,还包括:
文件头填写单元,用于如果文件头被破坏,则根据文件格式为其重新填写文件头,以完成文件的恢复。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
在本发明实施例中,在对已删除文件可视化内容生成预览的过程中,直接将已删除文件读到内存中来,而不需要重新以文件的方式写在硬盘上,这样,在为已删除可视化文件可视化内容生成预览的过程中,就不需要占用硬盘的空间,因此,也就不会影响其他已删除文件的可恢复性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的生成文件预览的方法包括以下步骤:
S101:扫描硬盘,生成已删除文件列表;
已删除文件对于用户而言是不可见的,如果不进行特殊操作,则用户无法对已删除文件进行操作。因此,可以首先针对磁盘分区,找到其中被标记为“已删除”的文件,并以列表的方式将这些文件展现给用户。例如,展现的界面可以如图2所示。从图2可以看出,列表中展现出了各个已删除文件的文件名、大小、创建时间、最近访问时间等等属性。当然,在有些情况下,文件原来的实际文件名等属性可能已经被破坏,因此,展现在已删除文件列表中的文件名,不一定是文件实际的文件名。
S102:针对所述已删除文件列表中的已删除可视化文件,获取其数据所在的数据区;
所谓可视化文件,是指具有可视化内容的文件,例如图片、视频、文档等等,可以根据这些可视化内容分辨出具体是哪个文件。也即,只有具有可视化内容的文件才具有生成预览的需求。否则,如果是一个可执行程序的安装文件等等,则不具有可视化内容,也就不需要为其生成预览。其中,由于一个文件是否为可视化文件,通常可以根据其类型判断出来,同时,文件名的后缀名又通常能够体现出文件是什么类型(例如,BMP、JPG、JPEG、PNG、GIF等都是图片类型文件的后缀名,等等),因此,具体在区分可删除文件是否为可视化文件时,可以根据文件的后缀名等信息来进行确定。具体实现时,可以将可视化文件可能的后缀名整理出来,作为一个名单(或者其他的文件形式)进行保存,得到已删除文件列表之后,可以首先获取各个文件名的后缀名,如果某文件的后缀名出现在名单中,则属于可视化文件。
另外,注意到用户通常需要对一种或几种特定类型的已删除文件尤为感兴趣,因此,还可以预先设定仅为这些特定类型的文件生成预览,在得到已删除文件列表之后,首先判断各个已删除文件的类型,如果属于预先设定的特定类型,则为其生成预览,否则不为其生成预览。其中,特定类型可以是指图片、视频等等。在实际应用中,还可以为用户提供设置入口,由用户根据自己的需要设置生成预览的文件类型。其中,在分析文件类型时,可以依据文件名的扩展名进行分析,例如,如果文件名的扩展名是BMP、JPG、JPEG、PNG、GI F等等,则都可以证明该文件时图片类型的文件。当然,由于文件头中通常会包含文件类型信息,因此,也可以通过分析文件头,或者文件的类型。
当用户执行将文件从系统删除时,实际上并不是真正的删除,而是在MFT(MasterFile Table,主文件表,MFT是NTFS格式磁盘每个分区的主文件表,它记录了当前分区的所有文件的属性,包括文件名和占用的扇区等信息)的相应文件属性中将该文件的一个标识设置为删除,并且将占用的磁盘空间标记为可写。也就是说,组成该文件的具体数据在磁盘上仍然存在,只不过不能够直接使用AP I函数对其进行操作,但是依然能够通过MFT找到该文件所在的数据区。因此,本发明实施例就可以在MFT表中找到该文件的索引,然后根据该索引,即可找到该文件所在的数据区。
S103:从所述数据区将所述数据读取到内存中;
找到已删除文件所在的数据区之后,就可以读取该数据区中的数据,并且,在本发明实施例中,并没有向传统的方法一样,将数据提取出来,并以文件的形式重新保存在磁盘上,而是直接将数据读取到内存中,这样,就不需要占用磁盘上的空间,避免对磁盘上的其他已删除文件造成覆盖,进而对其可恢复性造成影响。
S104:在内存中对所述数据进行解码,生成关于所述已删除可视化文件可视化内容的预览。
将已删除文件所在数据区的数据读到内存中之后,就可以直接在内存中对数据进行解码,然后生成已删除文件的预览即可。在为可视化文件生成预览之后,用户就可以根据各个可视化文件的可视化内容的预览,分辨出各个不同的文件,然后选择出需要恢复或者需要彻底删除的文件,等等。换言之,当用户根据已删除文件可视化内容的预览选择某文件时,将可以将该选择的文件作为需要恢复或者需要彻底删除的文件。
其中,在内存中对数据进行解码时,具体可以包括:分析文件流中的文件头,判断出文件格式,然后,根据所述文件格式,采用相应的解码算法对数据解码之后,即可生成已删除文件的预览
需要说明的是,在实际应用中,由于已删除文件所在的数据区已经被标记为可写,因此,有可能已经被其他文件的数据部分覆盖。针对这种情况,本发明实施例中也可以根据尚未被覆盖的部分数据,生成已删除文件的部分预览,当然,还可以使用深层分析等工具,对被覆盖的部分数据进行深层分析,实现数据的恢复,然后再进行生成针对已删除文件的完整的预览。其中,具体如何对被覆盖的数据进行深层分析,并不属于本发明的范畴,本领域技术人员可以参照已有技术的方法进行,这里不再赘述。
另外,还可能存在以下情况:已删除文件的文件头可能已经被破坏,导致无法正常为该已删除文件生成预览。针对这种情况,本发明实施例还可以为用户发出提示信息,以提示用户该已删除文件的文件头已经被破坏。或者,考虑到同一种文件格式的文件,通常具有相同规范的文件头,因此,本发明实施例还可以根据已删除文件的文件格式(可以根据MFT中记载的文件名的扩展名获知,例如,某图片文件的文件名为**.bmp,其扩展名为bmp,则证明该文件是bmp格式的文件),重新为该已删除文件填写文件头,以便正常生成已删除文件的预览。具体实现时,可以预先保存各种文件格式与文件头规范之间的对应关系,在为某已删除文件填写文件头时,就可以根据该文件的文件格式以及预先保存的对应关系,或者文件头的规范,然后按照该规范对文件属性进行组织,即可生成已删除文件的文件头。
需要说明的是,在实际应用中,可以在得到已删除文件列表之后,同时为列表中的每个文件都生成预览,也就是说,用户直接可以看到带有预览的已删除文件列表。或者,为了节省计算资源,也可以在默认情况下暂时先不提供文件预览,当用户将焦点定位到列表中的某条目之后,再为该条目对应的已删除文件生成预览。
与本发明实施例提供的生成文件预览的方法相对于,本发明实施例还提供了一种生成文件预览的装置,参见图3,该装置包括:
列表生成单元301,用于扫描硬盘,生成已删除文件列表;
数据区获取单元302,用于针对所述已删除文件列表中的已删除可视化文件,获取其数据所在的数据区;
数据读取单元303,用于从所述数据区将所述数据读取到内存中;
预览生成单元304,用于在内存中对所述数据进行解码,生成关于所述已删除可视化文件可视化内容的预览。
具体实现时,该装置中还可以包括:
文件确定单元,用于当用户根据所述已删除文件可视化内容的预览选择某文件时,将所述选择的文件作为需要恢复或者需要彻底删除的文件。
其中,数据区获取单元302具体可以用于:针对所述已删除文件列表中的特定类型的已删除可视化文件,获取其数据所在的数据区。
其中,所述特定类型包括图片、视频等等。
其中,预览生成单元304包括:
分析子单元,用于分析文件流中的文件头,判断文件格式,根据所述文件格式,生成关于所述已删除可视化文件可视化内容的预览。
在实际应用中,该装置还可以包括:
文件头填写单元,用于如果文件头被破坏,则根据文件格式为其重新填写文件头,以完成文件的恢复。
总之,通过本发明实施例提供的装置,在对已删除文件生成预览的过程中,直接将已删除文件读到内存中来,而不需要重新以文件的方式写在硬盘上,这样,在为已删除文件生成预览的过程中,就不需要占用硬盘的空间,因此,也就不会影响其他已删除文件的可恢复性。
需要说明的是,本发明实施例所述的装置是与前述方法实施例相对应的,因此,装置实施例中的未详述部分可以参见方法实施例中的介绍,这里不再赘述。
以上对本发明所提供的一种生成文件预览的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。