CN106708831B - 一种fat镜像文件处理的方法及装置 - Google Patents
一种fat镜像文件处理的方法及装置 Download PDFInfo
- Publication number
- CN106708831B CN106708831B CN201510469405.4A CN201510469405A CN106708831B CN 106708831 B CN106708831 B CN 106708831B CN 201510469405 A CN201510469405 A CN 201510469405A CN 106708831 B CN106708831 B CN 106708831B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- image file
- structure information
- information
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种FAT镜像文件处理的方法及装置。该方法包括:创建文件配置表FAT镜像文件的压缩文件;将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,所述压缩文件中不包括所述FAT镜像文件中的未使用的数据结构的数据。由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小。这样,不仅减少了该FAT镜像文件的压缩文件所占的存储资源,并且这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种FAT镜像文件处理的方法及装置。
背景技术
文件配置表(Fill Allocation Table,FAT)文件是一种常见的文件***类型,现有的几种FAT类型的文件***有FAT16、FAT32和EXFAT文件***,常用于U盘等热插拔可移动存储设备上,Windows***、Linux***都可支持这些FAT文件***。
目前的FAT镜像文件存储FAT文件***完整的数据结构,这样会导致一系列的问题。例如,在对FAT文件***的镜像文件进行传输的过程中,常常受传输介质的限制,例如网络带宽和USB速度等等的限制,传输效率较低。又例如,对于FAT文件***的镜像文件的存储,也存在占用过多存储资源的问题。
发明内容
本发明实施例的目的是提供一种FAT镜像文件处理的方法及装置,用于解决FAT镜像文件存储FAT文件***完整的数据结构导致的一系列问题。
本发明实施例的目的是通过以下技术方案实现的:
一种FAT镜像文件处理的方法,包括:
创建文件配置表FAT镜像文件的压缩文件;
将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,所述压缩文件中不包括所述FAT镜像文件中的未使用的数据结构的数据。
可选的,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,包括:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述第一数据块和所述第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;
将所述文件头、所述第一数据块和所述第二数据块添加到所述压缩文件中。
可选的,所述第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
可选的,如果第二数据块对应数据结构的数据不是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果所述第二数据块对应数据结构的数据是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据。
可选的,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,包括:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述第一数据块的结构信息,已使用的数据结构的结构信息及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;
将所述文件头、所述第一数据块和所述FAT镜像文件的各个已使用的数据结构添加到所述压缩文件中。
可选的,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构中的数据添加到所述压缩文件中,包括:
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述FAT镜像文件中未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,所述第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;
将所述文件头和所述第二数据块添加到所述压缩文件中。
可选的,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中之后,还包括:
发送所述压缩文件。
一种FAT镜像文件处理的装置,包括:
创建压缩文件模块,用于:创建FAT镜像文件的压缩文件;
压缩文件添加模块,用于:将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,所述压缩文件中不包括所述FAT镜像文件中的未使用的数据结构的数据。
本发明实施例的有益效果如下:
本发明实施例中,创建FAT镜像文件的压缩文件;将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构中的数据添加到压缩文件中,该压缩文件中不包括该FAT镜像文件中的未使用的数据结构中的数据。由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的。这样,不仅减少了该FAT镜像文件的压缩文件所占的存储资源,并且这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
一种FAT镜像文件处理的方法,包括:
从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,所述压缩文件中不包括未使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构。
可选的,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第一数据块和第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;每个第二数据块对应一个或连续的至少两个已使用的数据结构;
根据第一数据块的结构信息从所述压缩文件中查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;
根据第二数据块的结构信息从所述压缩文件中查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
从查找到的第二数据块中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
可选的,所述第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
可选的,如果第二数据块对应数据结构的数据不是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果所述第二数据块对应数据结构的数据是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据;根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的特征数据写入对应的数据结构中。
可选的,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第一数据块的结构信息,已使用的数据结构的结构信息和及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;
根据第一数据块的结构信息查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
根据读取的已使用的数据结构在所述压缩文件中的位置信息从所述压缩文件中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据读取的已使用的数据结构的结构信息,将读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
可选的,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第二数据块的结构信息,未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;其中,每个第二数据块对应一个或连续的至少两个已使用的数据结构;
根据第二数据块的结构信息查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
从查找到的第二数据块中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据读取的未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,将默认数据写入对应的数据结构中。
可选的,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息之前,还包括:
接收所述FAT镜像文件的压缩文件。
一种FAT镜像文件处理的装置,包括:
结构信息读取模块,用于:从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,所述压缩文件中不包括未使用的数据结构的数据;
数据读取模块,用于:根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据;
第一恢复模块,用于:根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构;
第二恢复模块,用于:根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构。
本发明实施例的有益效果如下:
本发明实施例中,由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小,节省了压缩文件的所占的存储资源。并且,恢复的过程中,也不需要从压缩文件中再读取数据字段,直接根据默认数据进行恢复,处理速度较快。另外,这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
附图说明
图1为本发明实施例提供的第一种FAT镜像文件处理的方法流程图;
图2为本发明实施例提供的第二种FAT镜像文件处理的方法流程图;
图3为本发明实施例提供的第三种FAT镜像文件处理的方法流程图;
图4为本发明实施例提供的第四种FAT镜像文件处理的方法流程图;
图5为本发明实施例提供的第五种FAT镜像文件处理的方法流程图;
图6为本发明实施例提供的第六种FAT镜像文件处理的方法流程图;
图7为本发明实施例提供的第七种FAT镜像文件处理的方法流程图;
图8为本发明实施例提供的第八种FAT镜像文件处理的方法流程图;
图9为现有的FAT镜像文件中的簇链表;
图10为现有的FAT镜像文件中的簇使用情况;
图11为本发明实施例提供的FAT镜像文件压缩文件的逻辑示意图;
图12为本发明实施例提供的第一种FAT镜像文件处理的装置示意图;
图13为本发明实施例提供的第二种FAT镜像文件处理的装置示意图;
图14为本发明实施例提供的第三种FAT镜像文件处理的装置示意图;
图15为本发明实施例提供的第四种FAT镜像文件处理的装置示意图。
具体实施方式
下面结合附图和实施例对本发明提供的一种FAT镜像文件处理的方法及装置进行更详细地说明。
如图1所示,本发明实施例提供一种FAT镜像文件处理的方法,其具体实现方式如下:
步骤110:创建FAT镜像文件的压缩文件。
该步骤中,创建的是一个空的压缩文件。
步骤120:将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构的数据添加到压缩文件中,该压缩文件中不包括该FAT镜像文件中的未使用的数据结构的数据。
FAT镜像文件的数据结构是FAT镜像文件的组成部分,也即对应的FAT文件***的组成部分。以FAT16/32文件***为例,其可分成操作***引导记录区(Dos Boot Record,DBR)、保留区、FAT表区、数据区,每个分区的容量大小以占用的扇区数表示,数据区中以簇为基本单位,每个簇占用一个或多个扇区;数据结构可以是一个分区,一个扇区,一个簇。
其中,FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息和每个个数据结构的结构信息。其中,FAT镜像文件的整体结构信息包括FAT镜像文件中的数据结构的总数量、FAT镜像文件的总字节数,等等。其中,每个数据结构的结构信息包括数据结构的字节数,等等。
本发明实施例中,创建FAT镜像文件的压缩文件;将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构的数据添加到压缩文件中,该压缩文件中不包括该FAT镜像文件中的未使用的数据结构的数据。由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小。这样,不仅减少了该FAT镜像文件的压缩文件所占的存储资源,并且这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
上述步骤120的实现方式有多种,如图2所示,第一种实现方式可以是:
步骤210:生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据。
其中,第一数据块是按照预定格式生成的,第一数据块中除了包括对应的数据结构的结构信息外,还包括第一数据块的结构信息,如第一数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
步骤220:生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据。
其中,第二数据块的格式与上述第一数据块的格式相同,第二数据块中除了包括对应的数据结构的结构信息和数据外,还包括第二数据块的结构信息,如第二数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
步骤230:生成压缩文件的文件头,压缩文件的文件头中包括第一数据块和第二数据块的结构信息,和FAT镜像文件的整体结构信息。
其中,FAT镜像文件的整体结构信息,包括第一数据块和第二数据块的总数量,FAT镜像文件的总字节数,等等。
步骤240:将文件头、第一数据块和第二数据块添加到压缩文件中。
本发明实施例中,未使用的数据结构和已使用的数据结构均生成数据块,使得数据处理更加方便。
应当指出的是,上述步骤210和220的时序不作限定,可以先生成第一数据块,再生成第二数据块,或者并行生成第一数据块和第二数据块。
可选的,可以设置数据块的类型。一种实现方式中,将数据块分为两类,第一数据块为一类,这类数据块对应的数据结构为未使用的数据结构,称为未使用(UNUSED)类型,第二数据块为一类,这类数据块对应的数据结构为已使用的数据结构,称为原数据(RAW)类型。相应的,第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
下面举例对这种分类方式中的第二数据块中包括对应的数据结构的数据进行说明:例如,在数据结构中的数据为a,b,c,d,e,那么生成的第二数据块中包括数据a,b,c,d,e,这样,第二数据块中就包括了对应的数据结构中的全部数据;再例如,在数据结构中的数据为f,f,f,f,f,那么生成的第二数据块中包括数据f,f,f,f,f,这样,第二数据块中就包括了对应的数据结构中的全部数据。
在实现本发明的过程中,发明人发现在后一举例的数据结构中的数据是对数据f的重复,在第二数据块中相应的也包括重复的数据f,重复存储相同的数据会造成存储资源的浪费,为了进一步节省存储资源,提供了另一种数据块的分类分式。
另一种实现方式中,将数据块分为三类,第一数据块为一类,这类数据块对应的数据结构为未使用的数据结构,称为未使用(UNUSED)类型,第二数据块分为两类,其中一类数据块对应的数据结构为已使用的并且没有重复数据的数据结构,称为原数据(RAW)类型,另一类对应的数据结构为已使用的并且有特征数据重复的数据结构,称为填充(FILL)类型。相应的,如果第二数据块对应数据结构的数据不是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;如果第二数据块对应数据结构的数据是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据。
下面举例对这种分类方式中的第二数据块中包括对应的数据结构的数据进行说明:例如,在数据结构中的数据为a,b,c,d,e,那么生成的第二数据块中包括数据a,b,c,d,e,这样,第二数据块中就包括了对应的数据结构中的全部数据;再例如,在数据结构中的数据为f,f,f,f,f,那么生成的第二数据块中包括数据f,这样,第二数据块中就只包括了对应的数据结构中的特征数据f,而不是将全部数据f,f,f,f,f都包括其中,节省了存储资源。
上述实施例中,由于对于包括重复数据的数据结构,仅在第二数据块中包括该数据结构的特征数据,即对重复的数据只存储一次,从而减少了第二数据块中的数据量,进一步减少了压缩文件的大小,减少了压缩文件所占存储资源。对于这样的压缩文件的传输,其传输效率进一步提高了。
下面举例对上述步骤120的第一种实现方式进行更加详细地说明。
本实施例中,第一数据块和第二数据块的格式如下:
数据块(Chunk)={Chunk类型,Chunk长度,扇区数,数据};
其中,Chunk类型和Chunk长度是数据块的结构信息,扇区数是指数据块对应的数据结构的结构信息,数据是指数据块对应的数据结构的数据。
其中,Chunk类型有两种,RAW类型,UNUSED类型。RAW类型中,扇区数非0且数据存在。UNUSED类型中,扇区数非0且数据不存在。
文件头的格式如下:
文件头={文件标识ID,文件头大小,Chunk头结构大小(即不包含数据的Chunk的大小),每个扇区的字节数,总扇区数,Chunk总数量,数据校验和}
其中,每个扇区的字节数,总扇区数,Chunk总数量体现了FAT镜像文件的整体结构信息。Chunk头结构大小体现了数据块的结构信息。
对FAT镜像文件进行处理时,上述步骤210的具体实现方式可以是:对未使用的数据结构按照上述Chunk的格式生成UNUSED类型的数据块。
上述步骤220的具体实现方式可以是:对已使用的数据结构按照上述Chunk的格式生成RAW类型的数据块。
上述步骤230的具体实现方式可以是:将文件标识ID,文件头结构体大小,生成的RAW类型和UNUSED类型的Chunk头结构大小,每个扇区的字节数,总扇区数,Chunk总数量,数据校验和添加到文件头中。
上述步骤240的具体实现方式是:将文件头、所有的Chunk添加到压缩文件中。
可选的,如图3所示,上述步骤120的第二种实现方式可以是:
步骤310:生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据。
其中,第一数据块是按照预定格式生成的,第一数据块中除了包括对应的数据结构的结构信息外,还包括第一数据块的结构信息,如第一数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
步骤320:生成压缩文件的文件头,压缩文件的文件头中包括第一数据块的结构信息,已使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息。
其中,FAT镜像文件的整体结构信息,包括第一数据块的总数量,FAT镜像文件的总字节数,等等。
步骤330:将文件头、第一数据块和FAT镜像文件的各个已使用的数据结构添加到压缩文件中。
本实施例中,仅将未使用的数据结构生成数据块,减少了需要生成数据块的数据结构的数量,提高了处理效率。
上述实施例的具体实现方式可以参照步骤120的第一种实现方式。
可选的,如图4所示,步骤120的第三种实现方式可以是:
步骤410:生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
其中,第二数据块是按照预定格式生成的,第二数据块中除了包括对应的数据结构的结构信息和数据外,还包括第二数据块的结构信息,如第二数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
步骤420:生成压缩文件的文件头,压缩文件的文件头中包括FAT镜像文件中未使用的数据结构的结构信息及其在压缩文件中的位置信息、第二数据块的结构信息,和FAT镜像文件的整体结构信息。
其中,FAT镜像文件的整体结构信息,包括第二数据块的总数量,FAT镜像文件的总字节数,等等。
步骤430:将文件头和第二数据块添加到压缩文件中。
本实施例中,仅生成已使用的数据结构的数据块,并且仅在文件头中加入未使用的数据结构的结构信息,由于生成的数据块也是要占一定的空间的,所以减少了生成数据块的数量,并且进一步减少了压缩文件的大小。
上述实施例的具体实现方式可以参照步骤120的第一种实现方式。
在上述任意实施例的基础上,按照步骤120将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构中的数据添加到压缩文件中之后,得到的压缩文件,还可以发送该压缩文件。由其它设备或终端将其接收,实现了FAT镜像文件的传输。
基于同样的发明构思,在需要将压缩文件恢复成FAT镜像文件时,如图5所示,本发明实施例中还提供一种FAT镜像文件处理的方法,具体实现方式如下:
步骤510:从FAT镜像文件的压缩文件中读取FAT镜像文件的结构信息,该压缩文件中不包括未使用的数据结构的数据。
步骤520:根据读取的FAT镜像文件的结构信息从压缩文件中读取已使用的数据结构的数据。
其中,FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息和每个个数据结构的结构信息。其中,FAT镜像文件的整体结构信息包括FAT镜像文件中的数据结构的总数量、FAT镜像文件的总字节数,等等。其中,每个数据结构的结构信息包括数据结构的字节数,等等。
步骤530:根据读取的FAT镜像文件的结构信息和已使用的数据结构的数据恢复FAT镜像文件中已使用的数据结构。
步骤540:根据读取的FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复FAT镜像文件中未使用的数据结构。
本发明实施例中,由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小,节省了压缩文件的所占的存储资源。并且,恢复的过程中,也不需要从压缩文件中再读取数据字段,直接根据默认数据进行恢复,处理速度较快。另外,这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
可选的,上述步骤510~540的实现方式有多种,如图6所示,第一种实现方式可以是:
步骤610:从压缩文件的文件头中读取第一数据块和第二数据块的结构信息,和FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;每个第二数据块对应一个或连续的至少两个已使用的数据结构;根据第一数据块的结构信息从压缩文件中查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;根据第二数据块的结构信息从压缩文件中查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息。
其中,第一数据块是按照预定格式生成的,第一数据块中除了包括对应的数据结构的结构信息外,还包括第一数据块的结构信息,如第一数据块的长度、类型,等等。
其中,第二数据块的格式与上述第一数据块的格式相同,第二数据块中除了包括对应的数据结构的结构信息和数据外,还包括第二数据块的结构信息,如第二数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
其中,FAT镜像文件的整体结构信息,包括第一数据块和第二数据块的总数量,FAT镜像文件的总字节数,等等。
步骤620:从查找到的第二数据块中读取已使用的数据结构的数据。
步骤630:根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中。
步骤640:根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
本实施例中,未使用的数据结构和已使用的数据结构均有对应的数据块,使得数据处理更加方便。
应当指出的是,上述步骤620和640的时序不作限定,可以先处理第一数据块,再处理第二数据块,或者并行处理第一数据块和第二数据块。
参照上述对FAT镜像文件处理得到压缩文件的实施例中,可选的,上述实施例中,第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
可选的,上述实施例中,如果第二数据块对应数据结构的数据不是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据。如果第二数据块对应数据结构的数据是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据,相应的,步骤630的具体实现方式可以是:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的特征数据写入对应的数据结构中。
本实施例中,由于对于包括重复数据的数据结构,仅在第二数据块中包括该数据结构的特征数据,即对重复的数据只存储一次,相应的,读取的数据就减少了,从而提高了处理效率。
可选的,上述各个实施例中提到的默认数据可以是全0,或者全为F,等等。
例如,对上述步骤120的第一种实现方式得到的一个压缩文件进行恢复,上述步骤610~640的具体实现方式可以是:
读取稀疏(Sparse)文件(即上述压缩文件)的文件头得到每个扇区的字节数、总扇区数和Chunk总数量等。按照顺序读取Chunk头结构,如果是RAW类型,直接读取数据块Chunk中的数据写入FAT镜像文件;如果是FILL类型,则读取特征数据,写入相应扇区数的特征数据到FAT镜像文件,如果是UNUSED类型,则直接在FAT镜像文件相应的扇区写入全0数据。
可选的,对上述步骤120的第二种实现方式得到的一个压缩文件进行恢复时,如图7所示,上述步骤510~540的第二种实现方式可以是:
步骤710:从压缩文件的文件头中读取第一数据块的结构信息,已使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;根据第一数据块的结构信息查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息。
其中,第一数据块是按照预定格式生成的,第一数据块中除了包括对应的数据结构的结构信息外,还包括第一数据块的结构信息,如第一数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
其中,FAT镜像文件的整体结构信息,包括第一数据块的总数量,FAT镜像文件的总字节数,等等。
步骤720:根据读取的已使用的数据结构在压缩文件中的位置信息从压缩文件中读取已使用的数据结构的数据。
步骤730:根据读取的已使用的数据结构的结构信息,将读取的已使用的数据结构的数据写入对应的数据结构中。
步骤740:根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
本发明实施例中,仅需要对未使用的数据结构的第一数据块进行处理,减少了需要处理的数据结构的数量,提高了处理效率。
可选的,对上述步骤120的第三种实现方式得到的一个压缩文件进行恢复时,如图8所示,上述步骤510~540的第三种实现方式可以是:
步骤810:从压缩文件的文件头中读取第二数据块的结构信息,未使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息;其中,每个第二数据块对应一个或连续的至少两个已使用的数据结构;根据第二数据块的结构信息查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息。
其中,第二数据块是按照预定格式生成的,第二数据块中除了包括对应的数据结构的结构信息和数据外,还包括第二数据块的结构信息,如第二数据块的长度、类型,等等。
其中,数据结构的结构信息,包括数据结构的字节数,等等。
其中,FAT镜像文件的整体结构信息,包括第二数据块的总数量,FAT镜像文件的总字节数,等等。
步骤820:从查找到的第二数据块中读取已使用的数据结构的数据。
步骤830:根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中。
步骤840:根据读取的未使用的数据结构的结构信息及其在压缩文件中的位置信息,将默认数据写入对应的数据结构中。
本实施例中,压缩文件中仅存在已使用的数据结构的第二数据块,并且仅在文件头中存在未使用的数据结构的结构信息,减少了数据块的数量,进一步减少了压缩文件的大小,并提高了处理效率。
在上述任意实施例的基础上,执行步骤510之前,还包括:接收FAT镜像文件的压缩文件。
其中,该压缩文件可以是从其它设备或终端接收的。
下面以FAT镜像文件为例,对本发明实施例提供的一种FAT镜像文件处理的方法进行更加详细地说明。
本实施例中,以FAT16/32镜像文件为例,FAT16/32磁盘镜像中,FAT文件***可分为DBR、保留区、FAT表区、数据区。
其中,DBR指定:每个扇区的字节数,保留扇区数,FAT表的个数(为1或2,FAT2是FAT1的备份),每个FAT表的扇区数,每个簇的扇区数,每个簇的字节数(每个扇区的字节数*每个簇的扇区数)。
其中,FAT表是一个索引表,它指明了数据区中的所有簇的使用状态(已使用,未使用),同时也是一个链表,用来指明大块数据的拼接顺序,例如,一个大文件需占用多个簇,可以通过它在FAT表中的链表按顺序找到每个簇的数据。FAT16的簇号以16位(bit)为基本单元,结构如图9所示。在簇链表中,簇0/1为保留区,簇n的内容为指向下一个簇的编号,如果为FFFF,表示簇链到此结束,如簇2的内容为0300,表示簇2的下一个簇为簇3,簇3的内容为FFFF,表示没有下一个簇。
数据区的每个簇有一个编号(默认由2开始),FAT表中按编号存放簇的状态和连续性。
在对FAT16/32磁盘进行目录/文件的添加、删除、重命名以及文件的增大、减小这一系列的操作时,增加目录/文件:找到当前目录所在的簇,簇已满则重新分配新簇并修改FAT表中对应的簇链,找到未使用的目录项位置进行添加,并为该目录项分配簇;删除目录/文件:找到父目录项的簇,修改FAT表中该目录项的对应的簇为未分配状态(回收),从父目录项下找到该项并置标志0xE5(已删除),删除的目录项将不再使用;如果该目录项独占一个簇还可修改FAT表来回收此簇;目录/文件重命名:先删除再增加;文件增大:重新为文件分配簇并修改FAT表中此文件的簇链信息;文件减小:直接修改FAT表中此文件的簇链信息并回收空出来的簇。
数据区中簇的分配原则是:尽可能连续。一个文件占用多个簇,如果簇号是连续的则可以保证最快的存取效率。比如:文件f1要占用5个簇,为其分配的簇链3-4-5-6-7就是一个块。如果空闲的簇中没有这么多连续的簇,可能分配这样的簇链3-4-5-9-10就是多个块,会出现很多碎片。如图10所示,其中,簇m,簇m+1,簇m+2,簇n,簇k+1,簇j+1,簇j+2为已分配的(图中字体加粗)。这些簇的分配状态由FAT表来管理。
在上述FAT镜像文件进行压缩时,采用上述步骤120的第一种方式进行处理,其中第一数据块和第二数据块的格式相同,其格式如下:
Chunk={Chunk类型,Chunk长度,扇区数,数据};
其中,Chunk类型和Chunk长度是数据块的结构信息,扇区数是指数据块对应的数据结构的结构信息,数据是指数据块对应的数据结构的数据。
其中,Chunk类型有两种,RAW类型,UNUSED类型。RAW类型,表示对应的数据结构是已使用的,Chunk中扇区数非0且数据存在。UNUSED类型,表示对应的数据结构是未使用的,Chunk中扇区数非0且数据不存在。
另外,Sparse文件头的格式如下:
Sparse文件头={文件标识ID,Sparse文件头结构体大小,Chunk头结构大小(即不包含数据字段的Chunk结构体的大小),每个扇区的字节数,总扇区数,Chunk总数量,数据校验和}。
其中,每个扇区的字节数,总扇区数,Chunk总数量体现了FAT镜像文件的整体结构信息。Chunk头结构大小体现了数据块的结构信息。
按照上述Chunk和Sparse文件的文件头的格式对FAT镜像文件进行处理时,创建FAT镜像文件的一个压缩文件,从源FAT镜像文件,读取DBR(起始512字节),得到每个扇区的字节数等信息,用其初始化压缩文件的Sparse文件头并添加到压缩文件中。读取FAT镜像文件中保留区数据,生成Chunk#0,Chunk类型为RAW类型,添加到压缩文件中。读取FAT表数据中每个FAT表的扇区数和FAT表的个数,生成Chunk#1,Chunk类型为RAW类型,添加到压缩文件中。从2号簇开始遍历FAT1,为单个已使用的簇或者连续已使用的簇生成RAW类型的Chunk,为未使用的簇生成UNUSED类型的Chunk,并添加到压缩文件。其中,每个Chunk包含的扇区数等于每个簇的扇区数与簇的个数的乘积。按照上述Sparse文件头的格式更新Sparse文件头并添加到压缩文件。最后得到的Sparse文件(即压缩文件)如图11所示。
如果采用UNUSED类型、RAW类型和FILL类型这样的分类方式,对数据进行分析判断,如果数据为某个值X的重复。这里的X为特征数据,默认的特征数据如0x00000000,0xFFFFFFFF。例如上述Chunk#0,对应的是保留区的数据结构,保留区中,第0个扇区包含DBR信息,不可能是FILL类型,从1号扇区开始默认情况下填充的都是0,就可以将这一部分扇区用FILL类型表示,因此,Chunk#0此时可以表示成Chunk#01(RAW类型)和Chunk#02(FILL类型,数据为0x00000000)两个数据块,这样就达到了进一步减少压缩文件大小的目的。
本实施例中,再以exFAT镜像文件为例,exFAT镜像文件的磁盘镜像中,文件***可分为保留区、BOOT区,FAT表区、数据区。
通过BOOT区主引导分区DBR可指定:每个扇区的字节数,每个簇的扇区数,每个簇的字节数,FAT表的个数,FAT表偏移扇区数数,FAT表扇区数,磁盘总扇区数,簇堆偏移扇区数,数据区总簇数。
参照上述FAT16/32镜像文件的处理方法,创建一个exFAT镜像文件的压缩文件,读取exFAT镜像文件中DBR,得到每个扇区的字节数等信息,用其初始化Sparse文件头,并添加到压缩文件中。读取BOOT区FAT表偏移扇区数数,创建Chunk#0,类型为RAW,并添加到压缩文件。读取簇堆分配表前FAT区后的数据创建Chunk#2,类型为RAW,添加到压缩文件。从2号簇开始遍历FAT表,为单个已使用的簇或者连续已使用的簇生成RAW类型的Chunk,为未使用的簇生成UNUSED类型的Chunk,并添加到压缩文件。其中,每个Chunk包含的扇区数等于每个簇的扇区数与簇的个数的乘积。更新Sparse文件头并添加到压缩文件。
如果采用UNUSED类型、RAW类型和FILL类型这样的分类方式,处理方式也参照上述FAT16/32镜像文件的处理方法。
上述实施例中,将FAT镜像文件压缩得到压缩文件后,还可以反向恢复成FAT镜像文件,具体实现方式如下:
读取Sparse文件的文件头得到每个扇区的字节数、总扇区数和Chunk总数量等。按照顺序读取Chunk头结构,如果是RAW类型,直接读取Chunk中的数据写入FAT镜像文件;如果是FILL类型,则读取特征数据,写入相应扇区数的特征数据到FAT镜像文件,如果是UNUSED类型,则直接在FAT镜像文件相应的扇区写入全0数据。
应当指出的是,上述各个实施例,除了可以应用在FAT镜像文件压缩场景中,还可以应用在FAT磁盘快速克隆场景中,FAT镜像的快速量产的场景中。
基于同样的发明构思,如图12所示,本发明实施例提供一种FAT镜像文件处理的装置,包括创建压缩文件模块1201和压缩文件添加模块1202。
创建压缩文件模块1201,用于:创建FAT镜像文件的压缩文件;
压缩文件添加模块1202,用于:将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构的数据添加到压缩文件中,该压缩文件中不包括FAT镜像文件中的未使用的数据结构的数据。
本发明实施例中,创建FAT镜像文件的压缩文件;将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构的数据添加到压缩文件中,该压缩文件中不包括该FAT镜像文件中的未使用的数据结构的数据。由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小。这样,不仅减少了该FAT镜像文件的压缩文件所占的存储资源,并且这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
可选的,压缩文件添加模块1202具体用于:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成压缩文件的文件头,该压缩文件的文件头中包括第一数据块和第二数据块的结构信息,和FAT镜像文件的整体结构信息;
将文件头、第一数据块和第二数据块添加到压缩文件中。
可选的,第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
可选的,如果第二数据块对应数据结构的数据不是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果第二数据块对应数据结构的数据是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据。
可选的,压缩文件添加模块1202具体用于:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成压缩文件的文件头,该压缩文件的文件头中包括第一数据块的结构信息,已使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息;
将文件头、第一数据块和FAT镜像文件的各个已使用的数据结构添加到压缩文件中。
可选的,压缩文件添加模块1202具体用于:
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成压缩文件的文件头,该压缩文件的文件头中包括FAT镜像文件中未使用的数据结构的结构信息及其在压缩文件中的位置信息,第二数据块的结构信息,和FAT镜像文件的整体结构信息;
将文件头和第二数据块添加到述压缩文件中。
可选的,如图13所示,该装置还包括压缩文件发送模块1203。
压缩文件发送模块1203,用于:压缩文件添加模块1202将FAT镜像文件的结构信息和FAT镜像文件的各个已使用的数据结构中的数据添加到压缩文件中之后,发送压缩文件。
基于同样的发明构思,如图14所示,本发明实施例还提供一种FAT镜像文件处理的装置,包括:结构信息读取模块1401、数据读取模块1402、第一恢复模块1403和第二恢复模块1404。
结构信息读取模块1401,用于:从FAT镜像文件的压缩文件中读取FAT镜像文件的结构信息,FAT镜像文件中不包括未使用的数据结构的数据;
数据读取模块1402,用于:根据读取的FAT镜像文件的结构信息从压缩文件中读取已使用的数据结构的数据;
第一恢复模块1403,用于:根据读取的FAT镜像文件的结构信息和已使用的数据结构的数据恢复FAT镜像文件中已使用的数据结构;
第二恢复模块1404,用于:根据读取的FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复FAT镜像文件中未使用的数据结构。
本发明实施例中,由于压缩文件中不包含未使用的数据结构的数据,从而减少了压缩文件的大小,节省了压缩文件的所占的存储资源。并且,恢复的过程中,也不需要从压缩文件中再读取数据字段,直接根据默认数据进行恢复,处理速度较快。另外,这样的压缩文件,在相同的传输速度下,所需的传输时间减少,从而提高了传输效率。
可选的,结构信息读取模块1401具体用于:
从压缩文件的文件头中读取第一数据块和第二数据块的结构信息,和FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;每个第二数据块对应一个或连续的至少两个已使用的数据结构;根据第一数据块的结构信息从压缩文件中查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;根据第二数据块的结构信息从压缩文件中查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
数据读取模块1402具体用于:
从查找到的第二数据块中读取已使用的数据结构的数据;
第一恢复模块1403具体用于:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
第二恢复模块1404具体用于:
根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
可选的,第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
可选的,如果第二数据块对应数据结构的数据不是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果第二数据块对应数据结构的数据是对特征数据的重复,第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据;根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中时,第一恢复模块1403具体用于:根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的特征数据写入对应的数据结构中。
可选的,结构信息读取模块1401具体用于:从压缩文件的文件头中读取第一数据块的结构信息,已使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;根据第一数据块的结构信息查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;
数据读取模块1402具体用于:根据读取的已使用的数据结构在压缩文件中的位置信息从压缩文件中读取已使用的数据结构的数据;
第一恢复模块1403具体用于:根据读取的已使用的数据结构的结构信息,将读取的已使用的数据结构的数据写入对应的数据结构中;
第二恢复模块1404具体用于:根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
可选的,结构信息读取模块1401具体用于:从压缩文件的文件头中读取第二数据块的结构信息,未使用的数据结构的结构信息及其在压缩文件中的位置信息,和FAT镜像文件的整体结构信息;其中,每个第二数据块对应一个或连续的至少两个已使用的数据结构;根据第二数据块的结构信息查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
数据读取模块1402具体用于:从查找到的第二数据块中读取已使用的数据结构的数据;
第一恢复模块1403具体用于:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
第二恢复模块1404具体用于:
根据读取的未使用的数据结构的结构信息及其在压缩文件中的位置信息,将默认数据写入对应的数据结构中。
可选的,如图15所示,该装置还包括压缩文件接收模块1405。
压缩文件接收模块1405用于:结构信息读取模块1401从FAT镜像文件的压缩文件中读取FAT镜像文件的结构信息之前,接收FAT镜像文件的压缩文件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种FAT镜像文件处理的方法,其特征在于,包括:
创建文件配置表FAT镜像文件的压缩文件;
将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,所述压缩文件中不包括所述FAT镜像文件中的未使用的数据结构的数据;
其中,所述FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息、每个数据结构的结构信息;
所述FAT镜像文件的已使用的数据结构的结构信息和未使用的数据结构的结构信息在所述压缩文件中的不同数据块中,所述已使用的数据结构的结构信息所在的数据块中包括所述已使用数据结构的数据;
所述压缩文件的文件头中包括各数据块的结构信息和所述整体结构信息,所述整体结构信息包括数据块的总数量、所述FAT镜像文件的总字节数,所述数据块的结构信息包括数据块的长度、类型;
所述类型用于表征数据块对应的数据结构为未使用的数据结构或已使用的数据结构;
其中,所述压缩文件用以从所述压缩文件中恢复所述FAT镜像文件。
2.根据权利要求1所述的方法,其特征在于,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,包括:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述第一数据块和所述第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;
将所述文件头、所述第一数据块和所述第二数据块添加到所述压缩文件中。
3.根据权利要求2所述的方法,其特征在于,所述第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
4.根据权利要求2所述的方法,其特征在于,如果第二数据块对应数据结构的数据不是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果所述第二数据块对应数据结构的数据是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据。
5.根据权利要求1所述的方法,其特征在于,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,包括:
生成至少一个第一数据块,每个第一数据块对应一个或连续的至少两个未使用的数据结构,每个第一数据块包括对应的数据结构的结构信息,不包括对应的数据结构的数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述第一数据块的结构信息,已使用的数据结构的结构信息及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;
将所述文件头、所述第一数据块和所述FAT镜像文件的各个已使用的数据结构添加到所述压缩文件中。
6.根据权利要求1所述的方法,其特征在于,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构中的数据添加到所述压缩文件中,包括:
生成至少一个第二数据块,每个第二数据块对应一个或连续的至少两个已使用的数据结构,每个第二数据块包括对应的数据结构的结构信息和数据;
生成所述压缩文件的文件头,所述压缩文件的文件头中包括所述FAT镜像文件中未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,所述第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;
将所述文件头和所述第二数据块添加到所述压缩文件中。
7.根据权利要求1~6任一项所述的方法,其特征在于,将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中之后,还包括:
发送所述压缩文件。
8.一种FAT镜像文件处理的方法,其特征在于,包括:
从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,所述压缩文件中不包括未使用的数据结构的数据;
其中,所述FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息、每个数据结构的结构信息;
所述FAT镜像文件的已使用的数据结构的结构信息和未使用的数据结构的结构信息在所述压缩文件中的不同数据块中,所述已使用的数据结构的结构信息所在的数据块中包括所述已使用数据结构的数据;
所述压缩文件的文件头中包括各数据块的结构信息和所述整体结构信息,所述整体结构信息包括数据块的总数量、所述FAT镜像文件的总字节数,所述数据块的结构信息包括数据块的长度、类型;
所述类型用于表征数据块对应的数据结构为未使用的数据结构或已使用的数据结构;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构。
9.根据权利要求8所述的方法,其特征在于,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第一数据块和第二数据块的结构信息,和所述FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;每个第二数据块对应一个或连续的至少两个已使用的数据结构;
根据第一数据块的结构信息从所述压缩文件中查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;
根据第二数据块的结构信息从所述压缩文件中查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
从查找到的第二数据块中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
10.根据权利要求9所述的方法,其特征在于,所述第二数据块中包括对应的数据结构的数据,是指包括对应的数据结构的全部数据。
11.根据权利要求9所述的方法,其特征在于,如果第二数据块对应数据结构的数据不是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的全部数据;
如果所述第二数据块对应数据结构的数据是对特征数据的重复,所述第二数据块包括对应的数据结构的数据是指,包括对应的数据结构的特征数据;根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的特征数据写入对应的数据结构中。
12.根据权利要求8所述的方法,其特征在于,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第一数据块的结构信息,已使用的数据结构的结构信息和及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;其中,每个第一数据块对应一个或连续的至少两个未使用的数据结构;
根据第一数据块的结构信息查找到第一数据块,并从查找到的第一数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
根据读取的已使用的数据结构在所述压缩文件中的位置信息从所述压缩文件中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据读取的已使用的数据结构的结构信息,将读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据从查找到的第一数据块中读取的数据结构的结构信息,将默认数据写入对应的数据结构中。
13.根据权利要求8所述的方法,其特征在于,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,包括:
从所述压缩文件的文件头中读取第二数据块的结构信息,未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,和所述FAT镜像文件的整体结构信息;其中,每个第二数据块对应一个或连续的至少两个已使用的数据结构;
根据第二数据块的结构信息查找到第二数据块,并从查找到的第二数据块中读取对应的数据结构的结构信息;
根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据,包括:
从查找到的第二数据块中读取已使用的数据结构的数据;
根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构,包括:
根据从查找到的第二数据块中读取的数据结构的结构信息,将从查找到的第二数据块中读取的已使用的数据结构的数据写入对应的数据结构中;
根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构,包括:
根据读取的未使用的数据结构的结构信息及其在所述压缩文件中的位置信息,将默认数据写入对应的数据结构中。
14.根据权利要求8~13任一项所述的方法,其特征在于,从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息之前,还包括:
接收所述FAT镜像文件的压缩文件。
15.一种FAT镜像文件处理的装置,其特征在于,包括:
创建压缩文件模块,用于:创建FAT镜像文件的压缩文件;
压缩文件添加模块,用于:将所述FAT镜像文件的结构信息和所述FAT镜像文件的各个已使用的数据结构的数据添加到所述压缩文件中,所述压缩文件中不包括所述FAT镜像文件中的未使用的数据结构的数据;
其中,所述FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息、每个数据结构的结构信息;
所述FAT镜像文件的已使用的数据结构的结构信息和未使用的数据结构的结构信息在所述压缩文件中的不同数据块中,所述已使用的数据结构的结构信息所在的数据块中包括所述已使用数据结构的数据;
所述压缩文件的文件头中包括各数据块的结构信息和所述整体结构信息,所述整体结构信息包括数据块的总数量、所述FAT镜像文件的总字节数,所述数据块的结构信息包括数据块的长度、类型;
所述类型用于表征数据块对应的数据结构为未使用的数据结构或已使用的数据结构;
其中,所述压缩文件用以从所述压缩文件中恢复所述FAT镜像文件。
16.一种FAT镜像文件处理的装置,其特征在于,包括:
结构信息读取模块,用于:从FAT镜像文件的压缩文件中读取所述FAT镜像文件的结构信息,所述压缩文件中不包括未使用的数据结构的数据;
其中,所述FAT镜像文件的结构信息包括FAT镜像文件的整体结构信息、每个数据结构的结构信息;
所述FAT镜像文件的已使用的数据结构的结构信息和未使用的数据结构的结构信息在所述压缩文件中的不同数据块中,所述已使用的数据结构的结构信息所在的数据块中包括所述已使用数据结构的数据;
所述压缩文件的文件头中包括各数据块的结构信息和所述整体结构信息,所述整体结构信息包括数据块的总数量、所述FAT镜像文件的总字节数,所述数据块的结构信息包括数据块的长度、类型;
所述类型用于表征数据块对应的数据结构为未使用的数据结构或已使用的数据结构;
数据读取模块,用于:根据读取的所述FAT镜像文件的结构信息从所述压缩文件中读取已使用的数据结构的数据;
第一恢复模块,用于:根据读取的所述FAT镜像文件的结构信息和已使用的数据结构的数据恢复所述FAT镜像文件中已使用的数据结构;
第二恢复模块,用于:根据读取的所述FAT镜像文件的结构信息和未使用的数据结构的默认数据恢复所述FAT镜像文件中未使用的数据结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469405.4A CN106708831B (zh) | 2015-07-31 | 2015-07-31 | 一种fat镜像文件处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469405.4A CN106708831B (zh) | 2015-07-31 | 2015-07-31 | 一种fat镜像文件处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708831A CN106708831A (zh) | 2017-05-24 |
CN106708831B true CN106708831B (zh) | 2020-12-01 |
Family
ID=58929776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510469405.4A Active CN106708831B (zh) | 2015-07-31 | 2015-07-31 | 一种fat镜像文件处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708831B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235427B (zh) * | 2020-12-14 | 2021-03-30 | 广东睿江云计算股份有限公司 | 一种镜像文件的合并方法及其*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499027A (zh) * | 2009-03-06 | 2009-08-05 | 赵晓宇 | 一种基于独立内核和分布式构架的智能存储*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3940902B2 (ja) * | 2002-04-22 | 2007-07-04 | ソニー株式会社 | 情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及び情報処理装置の制御プログラムを記録した記録媒体 |
CN101923553A (zh) * | 2009-06-11 | 2010-12-22 | 鸿富锦精密工业(深圳)有限公司 | Fat文件***的安装方法 |
CN102929884B (zh) * | 2011-08-10 | 2016-05-04 | 阿里巴巴集团控股有限公司 | 一种收缩虚拟磁盘镜像文件的方法及装置 |
CN103677915B (zh) * | 2013-12-11 | 2018-08-07 | 厦门雅迅网络股份有限公司 | 一种基于TF启动卡进行flash镜像自动烧写的方法 |
CN104572492A (zh) * | 2015-01-22 | 2015-04-29 | 福州瑞芯微电子有限公司 | 一种烧录数据到fat32分区的方法和装置 |
-
2015
- 2015-07-31 CN CN201510469405.4A patent/CN106708831B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499027A (zh) * | 2009-03-06 | 2009-08-05 | 赵晓宇 | 一种基于独立内核和分布式构架的智能存储*** |
Non-Patent Citations (1)
Title |
---|
"FAT32下有效数据快速恢复方法";杨德明;《计算机应用》;20120901;第32卷(第9期);第2500-2503页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106708831A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102007070B1 (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
US9928250B2 (en) | System and method for managing deduplication using checkpoints in a file storage system | |
US20200226100A1 (en) | Metadata query method and apparatus | |
JP5732536B2 (ja) | 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体 | |
US10802923B2 (en) | Method and apparatus for incremental backup based on file paths and a prefix tree | |
CN103098035A (zh) | 存储*** | |
JP6527462B2 (ja) | 圧縮装置、圧縮方法、記録媒体および伸張装置 | |
CN103995855A (zh) | 存储数据的方法和装置 | |
CN103678337A (zh) | 数据清除方法、装置及*** | |
CN112612576B (zh) | 虚拟机备份方法、装置、电子设备及存储介质 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
US20130262799A1 (en) | Control method and storage device | |
CN104750432A (zh) | 一种数据存储方法及装置 | |
CN112732191A (zh) | 基于日志结构合并树合并数据的方法、***、设备及介质 | |
US8577939B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN106708831B (zh) | 一种fat镜像文件处理的方法及装置 | |
CN104462148A (zh) | 一种数据存储管理方法及装置 | |
CN105573862B (zh) | 一种恢复文件***的方法和设备 | |
CN115543859A (zh) | 多分区ssd的磨损均衡优化方法、装置、设备及介质 | |
CN103559106A (zh) | 一种数据的备份方法、装置及*** | |
CN111125011A (zh) | 一种文件处理方法、***及相关设备 | |
CN114691418B (zh) | 存储设备的信息恢复方法、装置、电子设备及存储介质 | |
CN106033454B (zh) | 虚拟文件***的格式化方法、处理方法和装置 | |
CN111143284A (zh) | 文件***动态索引方法及装置 | |
US20230273727A1 (en) | Dynamic storage for adaptive mapping for data compression on a storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province Applicant after: ACTIONS TECHNOLOGY Co.,Ltd. Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province Applicant before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |