CN100405330C - 一种获取fat文件系统剩余空间的方法及其装置 - Google Patents
一种获取fat文件系统剩余空间的方法及其装置 Download PDFInfo
- Publication number
- CN100405330C CN100405330C CNB2005101306462A CN200510130646A CN100405330C CN 100405330 C CN100405330 C CN 100405330C CN B2005101306462 A CNB2005101306462 A CN B2005101306462A CN 200510130646 A CN200510130646 A CN 200510130646A CN 100405330 C CN100405330 C CN 100405330C
- Authority
- CN
- China
- Prior art keywords
- space
- information
- disk
- file system
- recording areas
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及计算机原理领域。本发明提出一种获得磁盘空间信息的方法以及使用这种方法的装置,它定义一个结构体用于记录磁盘空间信息。当需要获取磁盘空间信息时,直接读取这个结构体内的数据即可。采用本发明可以有效、快速的获取磁盘的空间信息,缩短了操作耗时。而且增加磁盘空间信息不会给磁盘带来空间占用上的负担。
Description
技术领域
本发明涉及计算机原理领域,具体涉及在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文件系统,本领域的技术人员都可以把它应用到其他场合中,例如应用到通用计算机或其他嵌入式开发中。本实施例仅用于支持本发明,本发明的保护范围应该由权利要求书限定。
Claims (6)
1.一种获取FAT文件系统剩余空间的方法,其特征在于在FAT文件系统中添加一个块作为磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,修改这个记录区中的信息;当需要获取磁盘空间信息时,读取该记录区内的信息;所述的用于记录磁盘空间信息的记录区位于保留区内。
2.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于所述的记录了磁盘空间信息的记录区定位为一个结构体,该结构体包括以下信息:磁盘总空间、剩余空间、已用空间、损坏空间。
3.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于当磁盘数据有读写操作时,磁盘空间信息同时被更新,更新的信息包括磁盘剩余空间、已用空间。
4.一种使用如权利要求1所述的方法的装置,包括CPU和存储器,其特征在于存储器内包括一个FAT文件系统,这个文件系统中有一个数据空间用作磁盘空间信息记录区,用于存放磁盘空间信息,所述的用于记录磁盘空间信息的记录区位于保留区内,当占用或释放磁盘空间时,该记录区内的数据会被更新;当需要获取磁盘空间信息时,读取该记录区内的信息。
5.如权利要求4所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
6.如权利要求4所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101306462A CN100405330C (zh) | 2005-12-16 | 2005-12-16 | 一种获取fat文件系统剩余空间的方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101306462A CN100405330C (zh) | 2005-12-16 | 2005-12-16 | 一种获取fat文件系统剩余空间的方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776648A CN1776648A (zh) | 2006-05-24 |
CN100405330C true CN100405330C (zh) | 2008-07-23 |
Family
ID=36766164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101306462A Expired - Fee Related CN100405330C (zh) | 2005-12-16 | 2005-12-16 | 一种获取fat文件系统剩余空间的方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100405330C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202350A (zh) * | 2016-07-05 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统自动精简配置的方法及系统 |
CN111081284A (zh) * | 2018-10-19 | 2020-04-28 | 合肥沛睿微电子股份有限公司 | 存储器装置与控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832525A (en) * | 1996-06-24 | 1998-11-03 | Sun Microsystems, Inc. | Disk fragmentation reduction using file allocation tables |
US6584520B1 (en) * | 1994-06-20 | 2003-06-24 | Richard Cowart | Method for dynamically generating a file allocation table base upon files storage information on a CD-ROM for retrieving compressed files directly from the CD-ROM |
CN1516026A (zh) * | 2003-01-02 | 2004-07-28 | 太和科技股份有限公司 | 可立即侦测剩余存储器容量的储存装置及其方法 |
-
2005
- 2005-12-16 CN CNB2005101306462A patent/CN100405330C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584520B1 (en) * | 1994-06-20 | 2003-06-24 | Richard Cowart | Method for dynamically generating a file allocation table base upon files storage information on a CD-ROM for retrieving compressed files directly from the CD-ROM |
US5832525A (en) * | 1996-06-24 | 1998-11-03 | Sun Microsystems, Inc. | Disk fragmentation reduction using file allocation tables |
CN1516026A (zh) * | 2003-01-02 | 2004-07-28 | 太和科技股份有限公司 | 可立即侦测剩余存储器容量的储存装置及其方法 |
Non-Patent Citations (2)
Title |
---|
Microsoft Extensible Firmware Initiative FAT32 File System Specification. Microsoft Corporation,21-22,Microsoft Corporation. 2000 |
Microsoft Extensible Firmware Initiative FAT32 File System Specification. Microsoft Corporation,21-22,Microsoft Corporation. 2000 * |
Also Published As
Publication number | Publication date |
---|---|
CN1776648A (zh) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9298384B2 (en) | Method and device for storing data in a flash memory using address mapping for supporting various block sizes | |
US8180956B2 (en) | Method for controlling memory card and method for controlling nonvolatile semiconductor memory | |
US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
US20040199712A1 (en) | Method for performing flash memory file management | |
US7702845B2 (en) | Method and apparatus for managing blocks according to update type of data in block-type memory | |
CN101983376B (zh) | 访问装置、信息记录装置、信息记录系统、文件管理方法和程序 | |
US20110022807A1 (en) | Write once recording device | |
CN101238431A (zh) | 大容量数据存储系统 | |
CN101484882A (zh) | 闪存管理方法 | |
CN108628542B (zh) | 一种文件合并方法及控制器 | |
CN101582084B (zh) | 一种数据存储的方法及装置 | |
CN102289451A (zh) | 文件或文件夹查找方法和装置 | |
CN101441596B (zh) | 提高闪存介质读写速度的方法 | |
KR100425678B1 (ko) | 디지탈 재생기에 적용되는 메모리 카드 및 그의 파일라이트/리드방법 | |
CN100477005C (zh) | 支持分区的闪存存贮器件 | |
CN106709014A (zh) | 一种文件系统转换方法及装置 | |
CN100405330C (zh) | 一种获取fat文件系统剩余空间的方法及其装置 | |
US20110307525A1 (en) | Virtual storage device | |
CN103257928B (zh) | 闪存设备数据管理方法和系统 | |
CN100419760C (zh) | Fat文件系统中文件分割的方法及其装置 | |
WO2008042594A1 (en) | Managing file allocation table information | |
US20100169555A1 (en) | Method of writing data into flash memory based on file system | |
US8200936B2 (en) | Systems and methods for recording information to a memory card | |
CN100444166C (zh) | Fat文件系统中基于位置的接口访问方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080723 Termination date: 20111216 |