一种FAT文件系统及其处理方法技术方案

技术编号:2918823 阅读:227 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种FAT文件系统及其处理方法,其中,该方法包括下列步骤:步骤A:对要删除的文件做删除标记,同时清除与要删除的文件对应的FAT表项;步骤B:记录该删除文件的位置、以及该文件对应的条目数目,并从该文件逐步搜索到根目录的末尾,记录末尾文件的位置及其条目数目;步骤C:判断末尾文件对应的条目数目是否等于所述删除文件对应的条目数目,在末尾文件对应的条目数目等于所述删除文件对应的条目数目时,用该末尾文件的条目覆盖该删除文件的条目,并将原末尾文件处的条目内容全部置零,将其对应的标记置可用标记。本发明专利技术的FAT文件系统及其处理方法,能够重新利用被删除文件名所占的空间,避免因文件被删除造成的浪费。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种FAT文件系统及其处理方法
技术介绍
文件分配表(File Allocation Table,FAT)文件系统是微软定义的一种管理磁盘数据空间的文件系统,创建于70年代末80年代初,起初用于MS-DOS操作系统,只将其定位为一种简单的文件系统,只适合于软盘管理,而当时的软盘也不过1M的存储范围而已。随着新技术的不断发展,磁盘存储空间不断变大,最初的FAT设计已不能满足需要,因此微软在原有基础上对FAT进行了扩展,即现在的FAT12、FAT16、以及FAT32文件系统,这三种文件系统已基本满足不同存储空间范围的空间管理了。对于一个空白的磁盘数据区,可以认为是一块连续的空白数据区,用户可以直接在该空白数据区上读写数据。而FAT文件系统,就是在该空白磁盘空间上做了一些定义规划,以方便使用磁盘空间。在定义了FAT文件系统之后,所有对磁盘空间的直接读写对用户而言是禁止的,只对FAT文件系统开放,用户对磁盘的操作通过FAT文件系统定义的接口来实现,例如打开文件、读写文件、关闭文件等操作。现有的FAT文件系统包含4部分参数区、FAT表、目录区以及数据区。FAT文件系统中规定了对磁盘读写操作的基本单位为512个字节,通常称为一个块(block),在block的基础上又定义了簇(Cluster)的概念,一个簇会包含1个或多个block,在参数区中说明具体包含的数目。其中,block是读写磁盘的最小单位。其中,参数区,主要用于记录整个FAT文件系统中相关的参数设置。例如一个簇包含几个block,一个FAT表由多少个block构成,一个文件系统包含多少个FAT表等。此外,在参数区中可能会保留几个block作为其它用途。FAT表,用于对FAT文件系统的磁盘空间进行管理。FAT表中基本表项可以为12个bit,16个bit或32个bit,即所谓的FAT12、FAT16、FAT32。FAT表中一个基本表项对应于数据区的一个簇,简单地说,就是将磁盘划分为数据区和标记区,FAT表就是做标记的地方。实际上FAT表构造一个单向链表结构,对每一FAT表项而言,其可以包含两类信息,一是其为第几个表项,可通过FAT表项的索引值得知,例如从零开始;二是该表项里存储的相应数据,FAT文件系统将该数据的值定义为下一个FAT表项的索引值。这样就形成了一个单项链表,链表结束处FAT表项的值为零。目录区,用于存储根目录下的文件名,FAT文件系统定义了根目录最多存储512个短文件名。目录区中的基本存储单位为条目(Entry)。一个短文件名对应一个条目,一个条目占32个字节(Byte),根目录下共有512个条目,共32个块(Block)。每一个条目中都包含指向的数据区的起始簇和文件大小,通过起始簇就可以再通过FAT表索引数据区,以此读取整个文件的内容。其中name,为文件或目录的名字;Ext,为扩展名;Attr,为属性字段;Time_ms,为时间字段;Create time,为创建时间;Create date,为创建日期;Access date,为最近一次访问日期;Start cluster HI,为文件或目录对应数据区的起始簇的高位;Modify time,为最近一次修改时间;Modify date,为最近一次修改日期;Start cluster LO,为文件或目录对应数据区的起始簇的低位;Filesize,为文件大小等。如果到了目录区的末尾条目,即没有下一个可用的目录了,可以通过从末尾条目的下一个条目的全部字节置零来表示条目的结束。数据区,其以簇为存储单位,通过文件的链表组织起来。其中的数据的读写都是被动的,FAT表指向哪就读哪。在FAT文件系统中删除文件时,采用置标记的方式。以一个短文件名为例,一个短文件名在FAT16的根目录里是由32个字节来存储的,当删除一个文件时Windows的通常做法是将要删除的文件名的第一个字节改为0xE5,这样文件系统在浏览时若遇到这样标记过的文件项就会跳过,不作显示,但实际上这32个字节还放在那里,那么就少了一个文件存放了。因此,现有的FAT文件系统存在以下问题在现有的FAT文件系统中删除文件时只是对文件名做了删除标记,但是并不清除该文件名,这样文件虽然被删除,但是文件名仍占用着存储空间,由于对磁盘根目录的频繁写入、删除文件,会导致根目录下可创建的文件数目大大减小,就会出现磁盘剩余大量空间,但根目录却无法继续创建新文件。
技术实现思路
本专利技术的目的在于,提供一种FAT文件系统,能够重新利用被删除文件名所占的空间,避免因文件被删除后,表示该文件名的条目依旧存在,而造成的浪费。本专利技术的另一目的在于,提供一种FAT文件系统的处理方法,能够重新利用被删除文件名所占的空间,避免因文件被删除后,表示该文件名的条目依旧存在,而造成的浪费。本专利技术的FAT文件系统的处理方法,包括下列步骤步骤A对要删除的文件做删除标记,同时清除与要删除的文件对应的FAT表项;步骤B记录所述删除文件的位置、以及该文件对应的条目数目,并从该文件逐步搜索到根目录的末尾,记录末尾文件的位置及其条目数目;步骤C判断所述末尾文件对应的条目数目是否等于所述删除文件对应的条目数目,在所述末尾文件对应的条目数目等于所述删除文件对应的条目数目时,用所述末尾文件的条目覆盖所述删除文件的条目,并将原末尾文件处的条目内容全部置零,将其对应的标记置可用标记;否则,返回步骤300。其中,在所述步骤A之前,进一步包括下列步骤预先定义一个存储模块,存储与各个条目相对应的标记,FAT文件系统在扫描根目录时,可以根据各个标记得知相应的条目是否可用。其中,所述存储模块以一个大小与根目录下的条目数目相一致的数组形式存在。在步骤C中,如果所述末尾文件对应的条目数目不等于所述删除文件对应的条目数目时,可以执行下列步骤扫描并定位所述删除文件后的第一个为不可用标记的条目位置,将从该不可用标记的条目一直到末尾文件相应的条目逐个向前移动该删除文件对应的条目所占的空间,以覆盖前面的条目。本专利技术的FAT文件系统,包括查询单元、分析单元、执行单元,其中所述查询单元,用于查询并记录删除文件的位置和删除文件对应的条目数目,以及查询并记录末尾文件的位置及其条目数目,并将查询结果发送至分析单元;分析单元,用于将查询单元发送来的删除文件对应的条目数目和末尾文件对应的条目数目进行比较,在比较结果为y1等于y2时,通知执行单元用所述末尾文件的条目覆盖所述删除文件的条目;执行单元,用于根据分析单元发送来的通知用所述末尾文件的条目覆盖所述删除文件的条目,并将原末尾文件处的条目内容全部置零,将其对应的标记置可用标记。其中,所述查询单元中,可以进一步包括存储模块,用于存储根目录下表示各个条目是否可用的标记。所述存储模块可以为一个大小与根目录下的条目数目相一致的数组。所述分析单元,可以进一步用于在所述末尾文件对应的条目数目不等于所述删除文件对应的条目数目时,通知执行单元将所述删除文件后的第一个为不可用标记的条目一直到末尾文件相应的的条目逐个向前移动所述删除文件对应的条目所占的空间,以覆盖前面的条目。本专利技术的有益效果是依照本专利技术的FAT文件系统及其处理方法,通过重新利用被删除文件名所占的空间本文档来自技高网
...

【技术保护点】
一种FAT文件系统的处理方法,其特征在于,包括下列步骤:步骤A:对要删除的文件做删除标记,同时清除与要删除的文件对应的FAT表项;步骤B:记录所述删除文件的位置、以及该文件对应的条目数目,并从该文件逐步搜索到根目录的末尾,记 录末尾文件的位置及其条目数目;步骤C:判断所述末尾文件对应的条目数目是否等于所述删除文件对应的条目数目,在所述末尾文件对应的条目数目等于所述删除文件对应的条目数目时,用所述末尾文件的条目覆盖所述删除文件的条目,并将原末尾文件处的条目 内容全部置零,将其对应的标记置可用标记。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙丰强
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

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

1