一种获取fat文件系统剩余空间的方法及其装置的制作方法

文档序号:6651360阅读:315来源:国知局
专利名称:一种获取fat文件系统剩余空间的方法及其装置的制作方法
技术领域
本发明涉及计算机原理领域,具体涉及在FAT文件系统中获取剩余空间的方法以及使用这种方法的装置。
背景技术
FAT文件系统定义了硬盘上的数据按照其不同的特点和作用分为5部分MBR区、DBR区、FAT区、DIR区和DATA区。
(1)MBR(主引导记录区),通常位于整个硬盘的0磁道0柱面1扇区,它包含了硬盘的一系列参数和一段引导程序,它由分区程序(如Fdisk.com)所产生的,并不依赖任何操作系统。
(2)DBR(操作系统引导记录区),它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区。它的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件,如果确定存在,就把其读入内存,并把控制权交给该文件。
(3)FAT(文件分配表)位于DBR之后,从0磁道1柱面33扇区开始,占据扇区的多少由磁盘类型和大小而定。文件分配表是用来表示磁盘空间的分配信息。它不表示引导区、文件目录的信息,也不真正存储文件内容。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT(文件分配表)来保存的,表中有很多表项(entry),每项记录一个簇的信息。
(4)DIR根目录区(Directory),紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
(5)数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的绝大部分数据空间FAT文件系统中,获取磁盘剩余空间是非常重要的一个功能,常规的根本的方法就是遍历整个FAT表,统计全部非零的数据部分,以此获取磁盘剩余空间。显然这种操作方法耗时很大,对于大容量磁盘其劣势比较明显。
根据FAT文件系统的规则,FAT表前会有一定数目的保留区,通常保留区中第一个block(块)存储整个FAT系统相关信息,且格式固定,剩余block就没有用及,当然FAT16和FAT32对这些剩余保留区处理有所不同。

发明内容
(一)要解决的技术问题本发明的目的是要克服目前现有技术的缺陷,提出一种获取FAT文件系统剩余空间的方法。
(二)技术方案本发明提出一种获取FAT文件系统剩余空间的方法,在FAT文件系统中添加一个块作为磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,修改这个记录区中的信息;当需要获取磁盘空间信息时,读取该记录区内的信息。
上述的获取FAT文件系统剩余空间的方法,一种优选的方案是用于记录磁盘空间信息的记录区位于保留区内。
上述的获取FAT文件系统剩余空间的方法,一种优选的方案是记录了磁盘空间信息的记录区定位为一个结构体,该结构体包括以下信息磁盘总空间、剩余空间、已用空间、损坏空间。
上述的获取FAT文件系统剩余空间的方法,一种优选的方案是当磁盘数据有读写操作时,磁盘空间信息同时被更新,更新的信息包括磁盘剩余空间、已用空间。
本发明还提出一种装置,该装置使用了本发明提出的获取FAT文件系统剩余空间的方法,该装置包括CPU和存储器,存储器内包括一个FAT文件系统,这个文件系统中有一个数据空间用作磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,该记录区内的数据会被更新;当需要获取磁盘空间信息时,读取该记录区内的信息。
上述的装置,一种优选的方案是还包括USB模块,用于将该装置与计算机相连。
上述的装置,一种优选的方案是装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
(三)有益效果采用本发明的获取磁盘剩余空间的方法及其装置,可以有效、快速的获取磁盘的空间信息,缩短了操作耗时。而且不会给磁盘带来空间占用上的负担,特别适合应用到大容量磁盘或嵌入式系统的开发。


图1为采用本发明的FAT文件系统结构示意图;图2为本发明的实施例的模块图。
其中,1、扬声器;2、MCU系统。
具体实施例方式
本发明提出的获取FAT文件系统剩余空间的方法结合附图和实施例说明如下。以下实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由各项权利要求限定。
参照图2,本实施例中,整个FAT文件系统放置在一片音频处理芯片中,这个音频处理芯片包括CPU和存储器部分,其中CPU和存储器之间的数据传输采用现有技术中常用的DMA(直接存储器存取)传输方式。具体在说,在这片音频芯片的存储器中设置了一个FAT文件系统。由于这个FAT文件系统,因此通过它可以完成对外部存储介质的管理,例如通过它读取外部的SD、MMC、NandFlash记忆卡中的数据。这种通过一个文件系统进行对外部存储介质的管理属于现有技术,类似于在通用计算机上通过操作系统完成对USB存储器的管理一样,在此不作赘述。
在这个MCU系统中,采用51C型CPU作为中央处理器,通过DMA方式与存储器之间通信。本装置采用现有技术中常用的音频处理模块,支持midi、mp3、wave多种格式的音乐播放功能,也支持midi+wave、midi+mp3的播放。这些音乐数据会通过音频混音模块,然后输出到EQ(智能)模块、3D模块,然后输出到扬声器。
这个MCU系统中还包括USB模块,这个音频处理芯片可以通过该模块与通用计算机(PC)之间进行数据传输。
对于存储在存储器中的文件系统而言,这个文件系统的结构示意图如图1所示。在制作常规的FAT文件系统时,在保留区添加了一个block(块)作为剩余空间记录区,用于存放磁盘空间信息。对于本实施例,它位于保留区的尾部。这个Block由一个结构体来定义typdef struct{long total; //磁盘总空间long used; //已用空间long free; //剩余空间long bad;//损坏空间}disk_space;这样,系统就定义一个结构体disk_space,用来存放磁盘空间信息,这些空间信息包括磁盘总空间、磁盘已用空间、剩余空间、损坏空间。当创建文件添加内容时,系统会修改disk_space.used和disk_space.free,也就是说disk_space.used会增加,而disk_space.free会减少;当删除文件时,系统也会同时修改disk_space.used和disk_space.free。这样,这个结构体会同步记录着磁盘内的空间信息,这个结构体的内容会随着磁盘占用的改变而更新。
当系统需要获取磁盘剩余空间信息时,采用本发明提出的技术的FAT文件系统不需要像现有技术一样遍历整个磁盘计算剩余空间,只需要查询这个block内的相关数据即可。用于查询这个block的函数接口描述为int get_space(disk_space&space);这个函数专门用于读取结构体disk_space中的数据,因此当需要获得磁盘信息时不再需要遍历整个磁盘,可以直接从该结构体中读取数据即可。由于现有技术的FAT文件系统中获取磁盘剩余空间需要遍历整个磁盘,这种技术对于大的磁盘空间或处理速度低的处理器是一种负担。
而采用本发明的获取磁盘剩余空间的方法,可以有效、快速的获取磁盘的空间信息,不需要采用现有技术遍历整个磁盘的操作,不但缩短了操作耗时,而且由于减少了遍历磁盘的操作,因此可以延长磁盘寿命。另一方面,由于这些磁盘空间信息存储在保留区的末尾,而FAT文件系统对文件的存放有严格的规定,保留区的末尾部分通常不占有数据,因此,增加这部分数据区域不会给磁盘带来空间占用上的负担。这样的做法,特别适合于小型系统特别是嵌入式系统的开发。
这种采用了本发明提出的获取FAT文件系统剩余空间方法的FAT文件系统,本领域的技术人员都可以把它应用到其他场合中,例如应用到通用计算机或其他嵌入式开发中。本实施例仅用于支持本发明,本发明的保护范围应该由权利要求书限定。
权利要求
1.一种获取FAT文件系统剩余空间的方法,其特征在于在FAT文件系统中添加一个块作为磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,修改这个记录区中的信息;当需要获取磁盘空间信息时,读取该记录区内的信息。
2.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于所述的用于记录磁盘空间信息的记录区位于保留区内。
3.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于所述的记录了磁盘空间信息的记录区定位为一个结构体,该结构体包括以下信息磁盘总空间、剩余空间、已用空间、损坏空间。
4.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于当磁盘数据有读写操作时,磁盘空间信息同时被更新,更新的信息包括磁盘剩余空间、已用空间。
5.一种使用如权利要求1所述的方法的装置,包括CPU和存储器,其特征在于存储器内包括一个FAT文件系统,这个文件系统中有一个数据空间用作磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,该记录区内的数据会被更新;当需要获取磁盘空间信息时,读取该记录区内的信息。
6.如权利要求5所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
7.如权利要求5所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
全文摘要
本发明涉及计算机原理领域。本发明提出一种获得磁盘空间信息的方法以及使用这种方法的装置,它定义一个结构体用于记录磁盘空间信息。当需要获取磁盘空间信息时,直接读取这个结构体内的数据即可。采用本发明可以有效、快速的获取磁盘的空间信息,缩短了操作耗时。而且增加磁盘空间信息不会给磁盘带来空间占用上的负担。
文档编号G06F17/30GK1776648SQ20051013064
公开日2006年5月24日 申请日期2005年12月16日 优先权日2005年12月16日
发明者孙丰强 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1