CN100405330C - 一种获取fat文件系统剩余空间的方法及其装置 - Google Patents

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

Info

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
Application number
CNB2005101306462A
Other languages
English (en)
Other versions
CN1776648A (zh
Inventor
孙丰强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005101306462A priority Critical patent/CN100405330C/zh
Publication of CN1776648A publication Critical patent/CN1776648A/zh
Application granted granted Critical
Publication of CN100405330C publication Critical patent/CN100405330C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明涉及计算机原理领域。本发明提出一种获得磁盘空间信息的方法以及使用这种方法的装置,它定义一个结构体用于记录磁盘空间信息。当需要获取磁盘空间信息时,直接读取这个结构体内的数据即可。采用本发明可以有效、快速的获取磁盘的空间信息,缩短了操作耗时。而且增加磁盘空间信息不会给磁盘带来空间占用上的负担。

Description

一种获取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文件系统,本领域的技术人员都可以把它应用到其他场合中,例如应用到通用计算机或其他嵌入式开发中。本实施例仅用于支持本发明,本发明的保护范围应该由权利要求书限定。

Claims (6)

1.一种获取FAT文件系统剩余空间的方法,其特征在于在FAT文件系统中添加一个块作为磁盘空间信息记录区,用于存放磁盘空间信息,当占用或释放磁盘空间时,修改这个记录区中的信息;当需要获取磁盘空间信息时,读取该记录区内的信息;所述的用于记录磁盘空间信息的记录区位于保留区内。
2.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于所述的记录了磁盘空间信息的记录区定位为一个结构体,该结构体包括以下信息:磁盘总空间、剩余空间、已用空间、损坏空间。
3.如权利要求1所述的获取FAT文件系统剩余空间的方法,其特征在于当磁盘数据有读写操作时,磁盘空间信息同时被更新,更新的信息包括磁盘剩余空间、已用空间。
4.一种使用如权利要求1所述的方法的装置,包括CPU和存储器,其特征在于存储器内包括一个FAT文件系统,这个文件系统中有一个数据空间用作磁盘空间信息记录区,用于存放磁盘空间信息,所述的用于记录磁盘空间信息的记录区位于保留区内,当占用或释放磁盘空间时,该记录区内的数据会被更新;当需要获取磁盘空间信息时,读取该记录区内的信息。
5.如权利要求4所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
6.如权利要求4所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
CNB2005101306462A 2005-12-16 2005-12-16 一种获取fat文件系统剩余空间的方法及其装置 Expired - Fee Related CN100405330C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 太和科技股份有限公司 可立即侦测剩余存储器容量的储存装置及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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