CN110990198A - 存储文件删除后的恢复方法、装置及存储介质 - Google Patents

存储文件删除后的恢复方法、装置及存储介质 Download PDF

Info

Publication number
CN110990198A
CN110990198A CN201911256232.2A CN201911256232A CN110990198A CN 110990198 A CN110990198 A CN 110990198A CN 201911256232 A CN201911256232 A CN 201911256232A CN 110990198 A CN110990198 A CN 110990198A
Authority
CN
China
Prior art keywords
data packet
file
packet
data packets
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911256232.2A
Other languages
English (en)
Inventor
王志雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Wondershare Software Co Ltd
Original Assignee
Shenzhen Sibo Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Sibo Technology Co ltd filed Critical Shenzhen Sibo Technology Co ltd
Priority to CN201911256232.2A priority Critical patent/CN110990198A/zh
Publication of CN110990198A publication Critical patent/CN110990198A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储文件删除后的恢复方法,所述方法包括以下步骤:判断所述存储文件的数据包之间是否存在关联;若存在关联,则对关联的数据包进行拼接处理;将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。本发明还公开了一种文件恢复装置及计算机可读存储介质。在存储文件删除后通过从存储文件的数据包中找到关联的数据包进行拼接,不仅能实现连续簇文件的拼接,也能实现跨簇文件的拼接,从而提高存储文件删除后恢复的可靠性。

Description

存储文件删除后的恢复方法、装置及存储介质
技术领域
本发明涉及数据恢复技术领域,尤其涉及一种存储文件删除后的恢复方法、文件恢复装置及计算机可读存储介质。
背景技术
在数字化转型的推动下,人们对于数据存储容量的需求也越来越高,使得一些较大的文件如视频文件,更多的出现在日常生活中,而由于误删等原因造成的文件丢失等情况也越来越多。
目前诸如视频一类的大数据量文件,主要的存储载体是sd卡,而sd卡采用的文件系统大多是fat32\fat16\exfat,这些文件系统的特点是文件删除之后会对fat表进行清空,所以无法获取文件在存储介质上的具体位置,只能根据找到文件的起始位置,连续读取文件的内容进行恢复。但是,诸如视频文件一类的大数据量文件在磁盘上的存储分布情况各种各样,设备使用一段时间后很难出现规律的连续存储的情况,而主流采用文件的起始位置读取文件的内容,很多的情况下不能实现文件的恢复,因为连续读取的数据内容并不是视频文件本身的数据内容。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明主要目的在于提供一种存储文件删除后的恢复方法、文件恢复装置及计算机可读存储介质,旨在解决由于设备原因或误删等情况造成文件丢失而难以恢复的问题。
为实现上述目的,本发明提供一种存储文件删除后的恢复方法,所述方法包括以下步骤:
判断所述存储文件的数据包之间是否存在关联;
若存在关联,则对关联的数据包进行拼接处理;
将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。
可选地,所述判断所述存储文件的数据包之间是否存在关联的步骤包括:
判断存储文件的数据包中是否存在起始位置相同的第一数据包;
若存在,则判定所述第一数据包之间存在关联。
可选地,所述判断存储文件的数据包中是否存在起始位置相同的数据包的步骤之后包括:
若不存在所述第一数据包,则判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包;
若存在一个所述第二数据包,则判定所述第二数据包与所述目标数据包之间存在关联。
可选地,判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包的步骤之后包括:
若存在多个所述第二数据包,则判断所述第二数据包中是否存在与目标数据包对应的参考数据包大小相等的第三数据包;
若存在与目标数据包对应的参考数据包大小相等的第三数据包,则判定目标数据包与所述第三数据包之间存在关联。
可选地,所述判断所述第二数据包中是否存在与目标数据包对应的参考数据包大小相等的第三数据包的步骤之后包括:
若不存在与目标数据包大小相等的参考数据包,则判断所述存储文件的数据包中是否存在与下一个目标数据包相对于簇起始位置的偏移距离相等的第二数据包。
可选地,所述判断所述存储文件的数据包之间是否存在关联的步骤之前包括:
根据所述存储文件各簇的内容获取每一个数据包对应的数据包信息以及文件头信息,并根据所述文件头信息确定第一个数据包的起始位置;
根据所述第一个数据包的起始位置及所述数据包信息判断所述存储文件的数据包之间是否存在关联;所述数据包信息包括数据包的起始位置及数据包的大小。
可选地,所述根据存储文件每一簇的内容获取每一个数据包的数据包信息以及文件头信息的步骤包括:
判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇;
若存在,则获取所述目标簇对应的文件头信息;所述文件头信息包括文件头的起始位置与文件头大小。
可选地,所述判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇的步骤之后包括:
判断当前簇的内容中是否存在预设文件的起始标志;
若存在,则根据存储文件所属文件类型对应的文件结构获取当前数据包的数据包信息;所述数据包信息包括当前数据包的起始位置与大小以及前一个数据包的起始位置。
此外,为实现上述目的,本发明还提供一种文件恢复装置,所述文件恢复装置包括存储器、处理器及存储在所述处理器上并可在处理器上运行的存储文件删除后的恢复程序,所述处理器执行所述存储文件删除后的恢复程序时实现如上所述存储文件删除后的恢复方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有存储文件删除后的恢复程序,所述存储文件删除后的恢复程序被处理器执行时实现如上所述的存储文件删除后的恢复方法的步骤。
本发明实施例中,通过存储文件的数据包中前后数据包存在的关联性判断所述存储文件的数据包之间是否存在关联,在所述存储文件的数据包之间存在关联时,不管存在关联的数据包连续存储的还是非连续存储的,只要将存在关联的数据包拼接起来,并将拼接后的数据包恢复至存储器中,就可以实现存储文件的恢复,避免不连续存储时采用连续读取文件数据的方式进行文件恢复造成的乱序情况,从而提高存储文件恢复的可靠性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的文件恢复装置结构示意图;
图2是本发明存储文件删除后的恢复方法第一实施例的流程示意图;
图3为本发明存储文件删除后的恢复方法第二实施例的流程示意图;
图4为本发明存储文件删除后的恢复方法一实施例中获取flv格式视频文件的数据包信息与文件头信息的流程示意图;
图5为本发明存储文件删除后的恢复方法一实施例中获取flv格式视频文件的数据包信息的子流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的主要解决方案是:
判断所述存储文件的数据包之间是否存在关联;
若存在关联,则对关联的数据包进行拼接处理;
将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。
由于目前的存储文件删除后的恢复方法主要存在针对于数据量较大的存储文件不连续存储时在删除后难以恢复的问题,本发明提出一种存储文件删除后的恢复方法、文件恢复装置及计算机可读存储介质,通过判断所述存储文件的数据包之间是否存在关联,当存在关联时,对存在关联的数据包进行拼接处理,当不存在关联时结束拼接,并在结束拼接后将拼接处理得到的数据包恢复至存储器中得到恢复后的存储文件,从而使得无论是连续存储的文件还是不连续存储的文件,只要根据前后数据包之间的关联性找到相互关联的数据包进行拼接处理,就可以实现存储文件删除后的恢复。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的文件恢复装置结构示意图。
如图1所示,本发明实施例中文件恢复装置可以包括:通信总线1002,处理器1001,例如CPU,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的文件恢复装置结构并不构成对文件恢复装置的限定,可以包括比图示更多或更少的部件,或组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及存储文件删除后的恢复程序。
在图1所示的文件恢复装置中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的存储文件删除后的恢复程序,并执行以下操作:
判断所述存储文件的数据包之间是否存在关联;
若存在关联,则对关联的数据包进行拼接处理;
将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。
可选地,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
判断存储文件的数据包中是否存在起始位置相同的第一数据包;
若存在,则判定所述第一数据包之间存在关联。
可选地,所述判断存储文件的数据包中是否存在起始位置相同的数据包的步骤之后,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
若不存在所述第一数据包,则判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包;
若存在一个所述第二数据包,则判定所述第二数据包与所述目标数据包之间存在关联。
可选地,所述判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包的步骤之后,处理器1001调用存储器1005中存储的存储文件删除后的恢复程序,并执行以下操作:
若存在多个所述第二数据包,则判断所述第二数据包中是否存在与目标数据包对应的参考数据包大小相等的第三数据包;
若存在与目标数据包对应的参考数据包大小相等的第三数据包,则判定目标数据包与所述第三数据包之间存在关联。
可选地,所述判断所述第二数据包中是否存在与目标数据包大小相等的参考数据包的步骤之后,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
若不存在与与目标数据包对应的参考数据包大小相等的第三数据包,则判断所述存储文件的数据包中是否存在与下一个目标数据包相对于簇起始位置的偏移距离相等的第二数据包。
可选地,所述判断所述存储文件的数据包之间是否存在关联的步骤之前,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
根据所述存储文件各簇的内容获取每一个数据包对应的数据包信息以及文件头信息,并根据所述文件头信息确定第一个数据包的起始位置;
根据所述第一个数据包的起始位置及所述数据包信息判断所述存储文件的数据包之间是否存在关联;所述数据包信息包括数据包的起始位置及数据包的大小。
可选地,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇;
若存在,则获取所述目标簇对应的文件头信息;所述文件头信息包括文件头的起始位置与文件头大小。
可选地,所述判断每一簇中是否存在以已删除文件对应的文件类型为开头的目标簇的步骤之后,处理器1001可以调用存储器1005中存储的存储文件删除后的恢复程序,还执行以下操作:
判断当前簇的内容中是否存在预设文件的起始标志;
若存在,则根据存储文件所属文件类型对应的文件结构获取当前数据包的数据包信息;所述数据包信息包括当前数据包的起始位置与大小以及前一个数据包的起始位置。
参照图2,图2为本发明存储文件删除后的恢复方法的第一实施例流程图,本实施例中,所述存储文件删除后的恢复方法包括以下步骤:
步骤S10:判断所述存储文件的数据包之间是否存在关联;
所述存储文件包括视频文件等数据量较大的存储文件,所述视频文件可以是不同格式的视频文件(如mov、rmvb、rm、flv及mp4等),当然所述存储文件也可以是数据量较小的存储文件(如尺寸较小的图片等)。本实施例一较优的实施例主要是针对于视频文件等数据量较大的存储文件不连续存储时情况对不连续存储的存储文件进行恢复。通常,视频文件等数据量较大的存储文件,在存储器(如磁盘或SD卡等)中进行存储时,大多数情况下都是不连续存储的,可能包括连续跨簇存储的情况和/或不连续跨簇的情况,如:通过图像采集设备采集的视频文件大多数都是通过SD卡存储,但SD卡采用的文件系统大多是fat32\fat16\exfat等,在文件删除后会对fat表进行清空,导致无法获取文件在存储介质上的具体位置,而视频文件由于数据量比较大,在磁盘上会以各种各样的分布情况进行存储,在设备使用一段时间后难以进行规律的连续存储。针对诸如视频文件等大数据量存储文件,在删除后,若采用存储文件的起始位置来读取存储文件的内容,容易将不连续的数据拼接起来进行恢复,使得恢复后的存储文件出现乱序的情况,文件恢复的可靠性差。因而要实现诸如视频文件等大数据量文件删除后的恢复,需要找到存储文件数据包之间的关联性,以根据数据包之间的关联性将待恢复的存储文件有序的拼接起来,实现存储文件删除后的恢复。而判断存储文件的每一个数据包之间是否存在关联的方式,可以是先判断连续簇存储的数据包之间是否存在关联性再判断不连续簇存储的数据包之间是否存在关联性,通过两次判断就可以确定各数据包之间的关联性;也可以是直接判断前后数据包之间的关联性,将所有的数据包从第一个数据包开始进行排序直至最后一个数据包,找到所有数据包之间的关联性当然还可以是其他的判断方式。若是通过两次判断确定各数据包之间的关联性,则需要找到连续簇存储的数据包的共同特点(如具有相同的起始位置等)以及不连续簇存储的数据包的共同特点(如具有相同的偏移距离等)。此时,通过起始位置及偏移距离就可以判断各数据包之间是否存在关联,当然,如果存储文件的数据包全部都是连续存储的话,那么就只需要进行第一个判断即连续簇存储的判断,如果存储文件的数据包全部都是不连续存储的话,那么就只需要进行第二个判断即不连续簇存储的判断;若是直接判断前后数据包之间的关联性,则需要找到判断前后数据包关联的条件,如每个数据包的起始位置或/与每个数据包的偏移距离等,并确定第一个数据包,再根据前后数据包的关联依次确定第二个数据包,第三个数据包等,直至不存在相互关联的数据包。当判断所述存储文件的数据包之间是否存在关联后,若所得的结果为存在关联,则将关联的数据包拼接起来;若所得结果为不存在关联,则此时已经获取了所有数据包之间的关联信息,因而在不存在关联时直接结束判断。
步骤S20:若存在关联,则对关联的数据包进行拼接处理;
若判断所述存储文件的数据包之间是否存在关联所得结果为存在关联,则对应地,若通过两次判断的方式来判断所述存储文件的数据包之间是否存在关联,则在第一次连续簇数据包的关联判断得到的第一结果为存在关联时,先将第一结果对应的存在关联的数据包连接起来,即将连续存储的数据包连接起来,在第二次连续簇数据包的关联判断得到的第二结果为存在关联时,再在第一结果对应的拼接基础上,将不连续存储的数据包连接起来,从而将存储文件的全部数据包有序地拼接起来;同样地,若直接判断前后数据包之间的关联性得到的判断结果为存在关联时,则依据确定的第一个数据包将前后存在关联的数据包拼接起来,直至不存在前后关联的数据包时,就可以将存储文件所有的数据包拼接起来;当然还可以是先找到存储文件中所有关联的数据包之后,根据所有关联的数据包之间的关联性直接拼接所有的数据包,还可以是其他很多方式等。
步骤S30:将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件;
由于存储文件在删除后只是删除了存储文件的标记区标志即存储文件对应的数据包的存储位置信息,因而找到存储文件数据包之间的关联,将关联的数据包拼接处理后就可以拼接得到完整存储文件数据,此时,对拼接得到完整存储文件数据进行读取,就可以将拼接处理后的数据包恢复至存储器中,从而得到恢复后的存储文件。
本实施例通过判断存储文件的数据包之间是否存在关联,以将存在关联的数据包拼接起来,再将拼接处理后的拼接数据包恢复至存储器中得到恢复后的存储文件,只需要找到存储文件的数据包之间的关联,就可以将存储文件的所有数据包拼接起来,不仅能够恢复连续存储的存储文件,也能恢复不连续存储的存储文件,避免基于起始位置连续读取造成的文件恢复内容出错的问题,提高文件恢复的可靠性。
参照图3,图3为本发明存储文件删除后的恢复方法的第二实施例流程图,本实施例中,所述存储文件删除后的恢复方法包括以下步骤:
步骤S11:判断存储文件的数据包中是否存在起始位置相同的第一数据包;步骤S12:判定所述第一数据包之间存在关联;
步骤S13:判断存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包;
步骤S14:若存在一个所述第二数据包,则判定所述第二数据包与所述目标数据包之间存在关联;
步骤S15:若存在多个所述第二数据包,则判断所述第二数据包中是否存在与目标数据包大小相等的参考数据包;
步骤S16:判定目标数据包与所述参考数据包对应的第三数据包之间存在关联;
步骤S17:返回判断下一个目标数据包;
步骤S18:将存在关联的数据包拼接起来;
步骤S19:将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。
本实施例中,在判断所述存储文件的数据包之间是否存在关联的步骤之前需要根据所述存储文件各簇的内容获取每一个数据包对应的数据包信息以及文件头信息,并根据所述文件头信息确定第一个数据包的起始位置;根据所述第一个数据包的起始位置及所述数据包信息判断所述存储文件的数据包之间是否存在关联;所述数据包信息包括数据包的起始位置及数据包的大小,其中数据包的大小包括当前数据包的大小以及当前数据包相对的前一个数据包的大小,并且,根据所述存储文件各簇的内容获取每一个数据包对应的数据包信息以及文件头信息需要先判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇;若存在,则获取所述目标簇对应的文件头信息;所述文件头信息包括文件头的起始位置与文件头大小;若不存在则获取下一簇的内容进行比较。在判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇的判断结束后,继续判断当前簇的内容中是否存在预设文件的起始标志;若存在,则根据存储文件所属文件类型对应的文件结构获取当前数据包的数据包信息;若不存在,同样进入下一簇的判断;其中所述数据包信息包括当前数据包的起始位置与大小以及前一个数据包的起始位置。在获取存储文件的数据包信息即文件头信息后,首先判断存储文件的数据包中是否存在起始位置相同的第一数据包,若存在,则判定所述第一数据包之间存在关联,而在存储文件的数据包中不存在起始位置相同的第一数据包时,进一步判断存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包,若存在一个与目标数据包相对于簇起始位置的偏移距离相等的第二数据包,则判定所述第二数据包与所述目标数据包之间存在关联,若存在多个与目标数据包相对于簇起始位置的偏移距离相等的第二数据包,则需要进一步确定所述第二数据包中是否存在与目标数据包大小相等的参考数据包,若所述第二数据包中存在与目标数据包大小相等的参考数据包,则判定目标数据包与所述参考数据包对应的第三数据包之间存在关联,若所述第二数据包中不存在与目标数据包大小相等的参考数据包,则继续判断下一个目标数据包,即继续判断存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包。在判断过程中依次对存在关联的第一数据包、第二数据包与目标数据包以及目标数据包与参考数据包对应的第三数据包进行拼接,并将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。具体地,将文件头的起始位置记为file_start_pos,文件头的大小记为file_size,通过将文件头的起始位置与文件头的大小相加,可以计算得到第一个数据包的起始位置为file_start_pos+file_size,记为next_tag_start_pos。然后在存储文件的所有数据包中进行遍历查找是否存在数据包的起始位置和第一个数据包的起始位置next_tag_start_pos相等的数据包,根据是否存在与当前数据包起始位置相等的数据包分为两种情况。
情况一:若存在与第一个数据包起始位置相等的数据包,则将与第一个数据包起始位置相等的数据包确定为第二个数据包,即确定第一个数据包与第二个数据包存在关联,,将存在关联的第一个数据包与第二个数据包作为第一数据包进行拼接,并将第二个数据包的起始位置加第二个数据包的数据量大小作为新的待比较的数据包,继续遍历查找是否存在数据包的起始位置和第二个数据包的起始位置next_tag_start_pos相等的数据包进行下一轮判断,以此类推。
情况二:如果不存在和第一个数据包的起始位置next_tag_start_pos相等的数据包,就可以判定当前数据包的位置产生了不连续的跨簇储存的行为。不连续的跨簇存储的情况,虽然数据包是不连续存储的,但是跨簇存储的数据包存在以下特点:跨簇前的最后一个数据包的结束位置相对于簇的起始位置与跨簇后第一个数据包的起始位置相对于簇的起始位置必定相同。依据此特点,可根据数据包相对于簇的起始位置是否相同进行筛选。将相对于簇的起始位置偏移距离相同的数据包记为suppose_hit_tag,大小记为suppose_hit_tag_size。由于视频文件等存储数据量较大的文件会存在较多的数据包,有可能存在不只一个数据包与目标数据包(从相对于簇的起始位置偏移距离相同的数据包选出一个数据包作为当前进行比较的目标数据包)相对于簇的起始位置相同的情况,影响数据包的准确拼接,所以在得到的判断结果为存在数据包的相对于簇的起始位置与目标数据包相同的步骤之后,先要判断相对于簇的起始位置与目标数据包相同的数据包是否只有一个,若只有一个,则确定此一个数据包作为第二数据包与目标数据包存在关联,将存在关联的第二数据包与目标数据包进行拼接;若不只有一个,即存在多个相对于簇的起始位置与目标数据包相同的数据包,还需引入必要的验证过程以找到与目标数据包存在关联的数据包。具体验证方法如下,取假设数据包(即目标数据包),获取目标数据包的前一个数据包(参考数据包)的数据量大小,从所述多个相对于簇的起始位置与目标数据包相同的数据包中查找是否存在数据量与目标数据包的前一个数据包的数据量大小的数据包,若存在,则将数据量与目标数据包的前一个数据包的数据量大小的数据包作为第三数据包,并确定第三数据包与目标数据包之间存在关联,将存在关联的第三数据包与目标数据包进行拼接。当相对于簇的起始位置偏移距离相同的数据包不只两个时,由于会存在多个目标数据包,此时,通过上述的判断方法确定与第一个目标数据包存在关联的数据包之后,若判断结果为不存在与第一个目标数据包存在关联的数据包时,则继续从相对于簇的起始位置偏移距离相同的数据包中取下一个目标数据包通过查找除目标数据包外的其他数据包中是否存在与参考数据包大小相等的数据包,以此类推。若存在相对于簇的起始位置偏移距离相同的N(N为正整数)个数据包,则进行判断的目标数据包的数据不超过N-1个。依次完成上面的流程进行匹配,直到无法命中,证明文件已经匹配结束,此时读取拼接后的数据包,就可以将拼接后的数据包恢复至存储器中,得到恢复后的存储文件。
另外,本实施例提供一种较优的方式获取flv格式的视频文件的数据包信息与文件头信息,如图4所示。
当所述存储文件为预设flv视频文件时,若所述预设flv视频文件存储于磁盘,则对整个磁盘进行遍历,根据簇开始的位置判断是否含有flv字样,如果获取到相关字样,即可假定是预设flv视频文件的flv文件头,可先保存相关文件头信息,保存的内容包括文件头起始位置和文件头的大小(文件头大小一般可固定为9);无论是否获取到文件头信息,都进入子流程获取存储文件每一个数据包对应的数据包信息,子流程的流程图如图5所示,同样对整个磁盘进行遍历,根据簇内容获取是否含有8,9,18等flv视频数据包起始标志,如果含有相关标志,可假定为预设flv格式的存储文件的数据内容。然后在起始标志的位置往前偏移4个字节的位置,连续获取这4个字节的内容,作为前一个数据包的大小记为previous_tag_size。并将前一个数据包的起始位置记为tag_start_pos,由tag_start_pos往后偏移5个字节获取当前数据包的大小记为cur_tag_body_size,那么当前数据包的完整大小应该为:4+11+cur_tag_body_size可标记为cur_tag_size;其中4为前一个数据包的数据量大小previous_tag_size所占用的4个字节,11包含当前数据包起始标志所占字节、当前数据包记录所占的3个字节以及当前数据包内容属性的其他信息所占字节,也可理解为包头。其中,需要储存的数据包信息包括当前数据包的起始位置tag_start_pos,前一个数据包的大小previous_tag_size以及当前包的大小cur_tag_size。
本实施例通过判断存储文件的数据包中是否存在起始位置相同的第一数据包找到连续存储的数据包的关联,将存在关联的第一数据包先拼接起来,再判断起始位置不同的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相同的第二数据包找到不连续存储的数据包的关联,当只存在一个时,直接将这一个第二数据包与目标数据包拼接起来,若存在多个第二数据包,则需要通过查找多个第二数据包中是否存在与目标数据包数据量相等的第三数据包,若存在,则将第三数据包与目标数据包进行拼接,如此,便可以找到存储文件的所有数据包之间的关联性,将存在关联的数据包全部拼接起来恢复至存储器中,就可以得到恢复后的存储文件,从而解决数据量较大的存储文件删除后难以恢复的问题,并提高视频恢复的可靠性。
此外,本发明实施例还提供一种文件恢复装置,所述电机检测装置包括存储器、处理器及存储在所述处理器上并可在处理器上运行的存储文件删除后的恢复程序,所述处理器执行所述存储文件删除后的恢复程序时实现如上所述存储文件删除后的恢复方法的步骤。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有存储文件删除后的恢复程序,所述存储文件删除后的恢复程序被处理器执行时实现如上所述的存储文件删除后的恢复方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,电视,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种存储文件删除后的恢复方法,其特征在于,所述存储文件删除后的恢复方法包括以下步骤:
判断所述存储文件的数据包之间是否存在关联;
若存在关联,则对关联的数据包进行拼接处理;
将拼接处理后的数据包恢复至存储器中得到恢复后的存储文件。
2.如权利要求1所述的存储文件删除后的恢复方法,其特征在于,所述判断所述存储文件的数据包之间是否存在关联的步骤包括:
判断存储文件的数据包中是否存在起始位置相同的第一数据包;
若存在,则判定所述第一数据包之间存在关联。
3.如权利要求2所述的存储文件删除后的恢复方法,其特征在于,所述判断存储文件的数据包中是否存在起始位置相同的数据包的步骤之后,还包括:
若不存在所述第一数据包,则判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包;
若存在一个所述第二数据包,则判定所述第二数据包与所述目标数据包之间存在关联。
4.如权利要求3所述的存储文件删除后的恢复方法,其特征在于,所述判断所述存储文件的数据包中是否存在与目标数据包相对于簇起始位置的偏移距离相等的第二数据包的步骤之后,还包括:
若存在多个所述第二数据包,则判断所述第二数据包中是否存在与目标数据包对应的参考数据包大小相等的第三数据包;
若存在与目标数据包对应的参考数据包大小相等的第三数据包,则判定目标数据包与所述第三数据包之间存在关联。
5.如权利要求4所述的存储文件删除后的恢复方法,其特征在于,所述判断所述第二数据包中是否存在与目标数据包大小相等的参考数据包的步骤之后,还包括:
若不存在与目标数据包对应的参考数据包大小相等的第三数据包,则判断所述存储文件的数据包中是否存在与下一个目标数据包相对于簇起始位置的偏移距离相等的第二数据包。
6.如权利要求1所述的存储文件删除后的恢复方法,其特征在于,所述判断所述存储文件的数据包之间是否存在关联的步骤之前包括:
根据所述存储文件各簇的内容获取每一个数据包对应的数据包信息以及文件头信息,并根据所述文件头信息确定第一个数据包的起始位置;
根据所述第一个数据包的起始位置及所述数据包信息判断所述存储文件的数据包之间是否存在关联;所述数据包信息包括数据包的起始位置及数据包的大小。
7.如权利要求6所述的存储文件删除后的恢复方法,其特征在于,所述根据存储文件每一簇的内容获取每一个数据包的数据包信息以及文件头信息的步骤包括:
判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇;
若存在,则获取所述目标簇对应的文件头信息;所述文件头信息包括文件头的起始位置与文件头大小。
8.如权利要求7所述的存储文件删除后的恢复方法,其特征在于,所述判断每一簇中是否存在以存储文件对应的文件类型为开头的目标簇的步骤之后包括:
判断当前簇的内容中是否存在预设文件的起始标志;
若存在,则根据存储文件所属文件类型对应的文件结构获取当前数据包的数据包信息;所述数据包信息包括当前数据包的起始位置与大小以及前一个数据包的起始位置。
9.一种文件恢复装置,其特征在于,所述装置包括存储器、处理器及存储在存储器上并可在处理器上运行的存储文件删除后的恢复程序,所述处理器执行所述存储文件删除后的恢复程序时实现权利要求1-8中任一项所述的存储文件删除后的恢复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有存储文件删除后的恢复程序,所述存储文件删除后的恢复程序被处理器执行时实现如权利要求1-8中任一项所述的存储文件删除后的恢复方法的步骤。
CN201911256232.2A 2019-12-09 2019-12-09 存储文件删除后的恢复方法、装置及存储介质 Pending CN110990198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911256232.2A CN110990198A (zh) 2019-12-09 2019-12-09 存储文件删除后的恢复方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911256232.2A CN110990198A (zh) 2019-12-09 2019-12-09 存储文件删除后的恢复方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN110990198A true CN110990198A (zh) 2020-04-10

Family

ID=70091655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911256232.2A Pending CN110990198A (zh) 2019-12-09 2019-12-09 存储文件删除后的恢复方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110990198A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053881A (zh) * 2011-01-07 2011-05-11 杭州电子科技大学 一种基于内容的Zip文件雕复方法
CN102360318A (zh) * 2011-09-27 2012-02-22 深圳市万兴软件有限公司 Fat文件系统中被删除文件的恢复方法及装置
CN102937924A (zh) * 2012-10-30 2013-02-20 厦门市美亚柏科信息股份有限公司 一种综合文件特征与文件系统的fat数据恢复方法
CN106227618A (zh) * 2016-07-11 2016-12-14 腾讯科技(深圳)有限公司 基于扩展文件系统的数据恢复方法及装置
CN110147351A (zh) * 2019-05-20 2019-08-20 中国刑事警察学院 一种Office文件数据分片识别、排序、重组方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053881A (zh) * 2011-01-07 2011-05-11 杭州电子科技大学 一种基于内容的Zip文件雕复方法
CN102360318A (zh) * 2011-09-27 2012-02-22 深圳市万兴软件有限公司 Fat文件系统中被删除文件的恢复方法及装置
CN102937924A (zh) * 2012-10-30 2013-02-20 厦门市美亚柏科信息股份有限公司 一种综合文件特征与文件系统的fat数据恢复方法
CN106227618A (zh) * 2016-07-11 2016-12-14 腾讯科技(深圳)有限公司 基于扩展文件系统的数据恢复方法及装置
CN110147351A (zh) * 2019-05-20 2019-08-20 中国刑事警察学院 一种Office文件数据分片识别、排序、重组方法

Similar Documents

Publication Publication Date Title
CN102937926B (zh) 一种恢复移动终端已删除sqlite文件的方法及装置
US9881015B2 (en) Method and system for previewing file information
CN109756760B (zh) 视频标签的生成方法、装置及服务器
US20100067867A1 (en) System and method for searching video scenes
CN109359091B (zh) 文件管理方法、装置、终端及计算机可读存储介质
KR101456757B1 (ko) SQLite 데이터베이스에서 삭제된 데이터의 복원 방법 및 장치
US10664443B2 (en) Method and apparatus for presenting to-be-cleaned data, and electronic device
US20160092441A1 (en) File Acquiring Method and Device
CN110826461A (zh) 视频内容识别方法、装置、电子设备及存储介质
Yang et al. A security carving approach for AVI video based on frame size and index
CN109597566B (zh) 一种数据读取、存储方法及装置
CN110969000A (zh) 数据合并的处理方法及装置
CN109246280B (zh) 通讯录云处理方法、装置、计算机设备及可读存储介质
CN111506747B (zh) 文件解析方法、装置、电子设备及存储介质
CN103886028B (zh) 从存储设备拷贝文件到广告机的方法和装置
CN110990198A (zh) 存储文件删除后的恢复方法、装置及存储介质
CN116502600A (zh) 一种发票文件的预览方法、装置、存储介质及电子设备
US20170171128A1 (en) Method and electronic device for email processing
CN109271543B (zh) 缩略图的显示方法、装置、终端及计算机可读存储介质
CN113297214B (zh) 基于dag区块链的快照处理方法、设备及存储介质
CN104572943A (zh) 免安装程序清理方法及装置
CN111698330B (zh) 存储集群的数据恢复方法、装置及服务器
CN110543575B (zh) 车载外置存储设备的媒体文件检索方法及装置
CN114528321A (zh) 数据检索方法及装置、电子设备及可读存储介质
WO2020211371A1 (zh) 图像恢复方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20211129

Address after: 518000 1001, block D, building 5, software industry base, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Wanxing Software Co.,Ltd.

Address before: 518000 1002, block D, building 5, software industry base, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN SIBO TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240614

AD01 Patent right deemed abandoned