一种Exfat文件系统断电保护及文件检测恢复方法技术方案

技术编号:19342180 阅读:50 留言:0更新日期:2018-11-07 13:54
本发明专利技术提供了一种Exfat文件系统断电保护及文件检测恢复方法,包括:确定要进行写操作的文件目录项;向文件的数据区中写入数据;设置操作状态为未完成;修改该文件属性目录项或流扩展目录项或文件名扩展目录项任意一项的类型特征值为其他值;依次更新流扩展目录项中的文件大小1文件大小2字段的值;更新对应的簇位图文件和FAT表项;计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中;将步骤4修改的值改回原来正确的值;设置操作状态为完成。同时,提供了相应文件的恢复方法。本发明专利技术解决了Exfat文件系统在写操作过程中遭到意外断电导致文件系统损坏的问题,并可实现未写完文件数据的快速恢复功能。

A power cut protection and file detection and recovery method for Exfat file system

The invention provides an Exfat file system power-off protection and file detection and recovery method, which includes: determining the file directory item to be written; writing data to the data area of the file; setting the operation state to be incomplete; modifying any of the file attribute directory item or the stream expansion directory item or the file name expansion directory item. The type eigenvalues of the file type are other values; the values of file size 1 and file size 2 fields in the stream expansion directory entry are updated in turn; the corresponding cluster bitmap files and FAT table entries are updated; the checksum of file directory entries is calculated and updated to the checksum field in the attribute directory entry; and the value modified in step 4 is changed back to the original value. The correct value; set the operation state to complete. At the same time, the corresponding file recovery method is provided. The invention solves the problem of file system damage caused by unexpected power failure in the writing operation of Exfat file system, and realizes the fast recovery function of unfinished file data.

【技术实现步骤摘要】
一种Exfat文件系统断电保护及文件检测恢复方法
本专利技术涉及计算机
,尤其是在文件系统存储方面,具体而言,本专利技术涉及一种Exfat文件系统断电保护及文件检测恢复方法。
技术介绍
在计算机
,涉及到大量的文件存储工作,需要对文件进行写操作,如果文件系统在对文件写操作的过程中遭到意外断电,则会导致文件系统中部分关键数据不完整,致使文件系统损坏,操作系统无法对该文件系统进行正常操作。现有的文件系统断电保护方法是对数据和日志进行双备份,或采取对硬件进行改造,在意外断电时由后备电源供电的方法。采用数据备份的方法可以达到文件系统断电保护的功能,但是备份数据会占用磁盘空间,导致磁盘利用率降低。采用硬件改造的方法,在一些硬件已固定的环境下就无法实现。
技术实现思路
针对现有文件系统断电保护方法中存在的不足,本专利技术提供了一种Exfat文件系统断电保护及文件检测恢复方法,可以避免文件系统在写操作过程中意外断电造成文件系统损坏的问题,同时,可以恢复在断电时未操作完的文件。本专利技术解决了Exfat文件系统在写操作过程中遭到意外断电导致文件系统损坏的问题,并可实现未写完的文件数据的快速恢复功能。本专利技术的技术方案说明如下:对Exfat文件系统进行写操作时,非常重要的一项数据就是文件目录项。文件目录项由三个部分组成,将这三个部分分别称为属性目录项、流扩展目录项、文件名扩展目录项。属性目录项中包含的关键信息有:属性目录项的类型特征值(0x85)、附属目录项数、文件目录项校验和、文件属性、文件创建时间、最后修改时间、最后访问时间。流扩展目录项中包含的关键信息有:流扩展目录项的类型特征值(0xC0)、文件碎片标志、文件名字符数、文件名Hash值、文件大小1、文件大小2、起始簇号。文件名扩展目录项中包含的关键信息有:文件名扩展目录项的类型特征值(0xC1)、文件名。本专利技术提供的Exfat文件系统断电保护方法对文件系统的写操作包括以下步骤:1.确定要进行操作的文件对应的文件目录项,记录该文件目录项的起始地址。2.向该文件的数据区中写入一段指定长度的数据。3.设置操作状态为未完成。4.修改属性目录项或流扩展目录项或文件名扩展目录项任意一项的类型特征值为其他值。5.依次更新流扩展目录项中的文件大小1、文件大小2字段的值。6.更新对应的簇位图文件和FAT表项。7.计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中。8.将步骤4修改的值改回原来正确的值。9.设置操作状态为完成。10.重复步骤2~9,直到写文件操作结束。所述操作状态保存在文件系统的保留区;操作的文件对应的文件目录项的起始地址记录在文件系统的保留区域中。文件系统意外断电重新上电后,需要对文件系统进行检测,检测步骤包括:1.读取操作状态的值。2.如果操作状态为完成,则不需要进行文件恢复。3.如果操作状态的值为未完成,说明断电时有操作未完成的文件。4.读取断电时正在操作的文件的文件目录项起始地址,获取文件目录项信息。5.判断文件目录项信息是否正确。6.如果此文件目录项信息正确,说明在刚设置操作状态为“未完成”,还未对文件目录项进行修改时断电,只要将操作状态修改为“完成”即可。7.如果此文件目录项信息不正确,说明此文件目录项对应的文件就是断电时正在操作的文件,需要对此文件进行恢复。文件恢复包括以下步骤:1.判断流扩展目录项中文件大小1和文件大小2字段的值是否一致。2.如果文件大小1和文件大小2字段的值不一致,将文件大小1字段的值复制到文件大小2字段,继续以下步骤;如果文件大小1和文件大小2字段的值一致,则直接继续以下步骤;3.计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中。4.将被修改的目录项类型的特征值修改为正确的值。5.将操作状态修改为“完成”。本专利技术的有益效果:本专利技术提供的Exfat文件系统断电保护方法,不需要进行过多的数据备份,就可以实现对文件系统断电保护,并可快速对断电前未操作完成的文件进行恢复,即使文件只写入一部分,也能保证已写入的部分可以读取到。附图说明图1为本专利技术文件系统断电保护文件写操作流程图;图2为本专利技术意外断电重新上电文件系统检测流程图;图3为本专利技术文件恢复流程图。具体实施方式下面通过具体实施方式对本专利技术作进一步的详细说明:在Windows操作系统上,对于Exfat文件系统,如果某个文件的文件目录项的属性目录项或流扩展目录项或文件名扩展目录项中的任一项的类型特征值不正确,Windows系统就不会将此识别成一个文件,但是仍然可以对该文件系统进行其他操作。如果该文件目录项中的属性目录项、流扩展目录项和文件名扩展目录项的类型特征值都是正确的,而流扩展目录项中文件大小1字段和文件大小2字段的值不一致,或属性目录项的校验和不正确,此时文件系统就被损坏了,Windows系统就无法对该文件系统进行其他操作。因此,本专利技术提供的一种Exfat文件系统断电保护方法,就是利用了上述的原理。当向文件系统进行写文件操作时,首先确定要进行写操作文件的文件目录项。如果是要创建一个新文件,需要先创建文件目录项,在创建文件目录项时,先将文件目录项的属性目录项、流扩展目录项、文件名扩展目录项的任一项的类型特征值修改为其他值。本专利技术以属性目录项为例,将属性目录项的类型特征值设为0x75,待文件目录项的其他字段都写成功之后,再将属性目录项的类型特征值修改回0x85。具体步骤如下:1.确定要进行操作的文件对应的文件目录项,将该文件目录项的起始地址记录在文件系统的保留区域中;2.向该文件中写入一段指定长度的数据;3.将操作状态设置为未完成,操作状态保存在文件系统的保留区;4.将属性目录项的类型特征值改为0x75;5.更新流扩展目录项中的文件大小1、文件大小2字段的值;6.更新对应的簇位图文件和FAT表项;7.计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中;8.将步骤4中修改的属性目录项的类型特征值修改回原来的值0x85。9.操作状态设置为完成,操作状态保存在文件系统的保留区。10.重复2~9步骤,直到文件写操作结束。文件系统意外断电重新上电后,首先需要检测断电时是否有操作未完成的文件,检测步骤包括:1.读取操作状态信息,判断操作状态是否为未完成;2.如果操作状态为完成,则不需要进行文件恢复;3.如果操作状态为未完成,则读取记录的操作文件目录项的起始地址;4.根据记录的操作文件目录项的起始地址读取未完成操作文件的文件目录项信息,判断该文件的目录项是否完整;5.如果此文件目录项信息正确,说明在刚设置操作状态为“未完成”,还未对文件目录项进行修改时断电,只要将操作状态修改为“完成”即可;6.如果此文件目录项信息不正确,说明此文件目录项对应的文件就是断电时正在操作的文件,需要对此文件进行恢复。文件恢复步骤为:1.判断流扩展目录项中文件大小1和文件大小2字段的值是否一致;2.如果文件大小1和文件大小2字段的值不一致,则将文件大小1字段的值复制到文件大小2字段,继续以下步骤;如果文件大小1和文件大小2字段的值一致,则直接继续以下步骤;3.计算文件目录项的校验和,计算时属性目录项的类型特征值按0x85进行,然后将校验和的值更新到属性目录项的本文档来自技高网...

【技术保护点】
1.一种Exfat文件系统断电保护方法,其特征在于,包括以下步骤:1)确定要进行写操作的文件所对应的文件目录项,将该文件目录项的起始地址记录在文件系统的保留区域中;2)向该文件的数据区中写入一段指定长度的数据;3)设置操作状态为未完成,并将操作状态保存在文件系统的保留区;4)修改该文件属性目录项,或流扩展目录项,或文件名扩展目录项任意一项的类型特征值为其他值;5)依次更新流扩展目录项中的文件大小1、文件大小2字段的值;6)更新对应的簇位图文件和FAT表项;7)计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中;8)将步骤4修改的值改回原来正确的值;9)设置操作状态为完成,并将操作状态保存在文件系统的保留区;10)重复步骤2至9,直到该文件写操作完成。

【技术特征摘要】
1.一种Exfat文件系统断电保护方法,其特征在于,包括以下步骤:1)确定要进行写操作的文件所对应的文件目录项,将该文件目录项的起始地址记录在文件系统的保留区域中;2)向该文件的数据区中写入一段指定长度的数据;3)设置操作状态为未完成,并将操作状态保存在文件系统的保留区;4)修改该文件属性目录项,或流扩展目录项,或文件名扩展目录项任意一项的类型特征值为其他值;5)依次更新流扩展目录项中的文件大小1、文件大小2字段的值;6)更新对应的簇位图文件和FAT表项;7)计算文件目录项的校验和,并将校验和的值更新到属性目录项中的校验和字段中;8)将步骤4修改的值改回原来正确的值;9)设置操作状态为完成,并将操作状态保存在文件系统的保留区;10)重复步骤2至9,直到该文件写操作完成。2.一种Exfat文件系统断电保护文件检测方法,其特征在于,包括以下步骤:1)读取操作状态的值;2)如果操作状态为完成,则不需要进行文件恢复;3)如果操作状态的值为...

【专利技术属性】
技术研发人员:刘碧贞李礼郭勇吴春王雨雷
申请(专利权)人:上海威固信息技术股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1