你现在位置:首页>技术论文>软件知识>正文
FAT文件系统几点释疑
日期:2008-5-21 0:15:17 来源:本站整理  
点击: 作者:
点击【】放大字体.
P.L.C.技.术.网——可编程控制器技术门户

春节前微软MF负责人员就提出用C#实现MF的文件系统,由于前一段时间事务相对比较繁忙,所以直到上礼拜六才开始深入研究FAT文件系统。其实FAT文件系统早在九十年代中期上大学初的时候就已经了解,当时有一款叫PCTools的工具软件,可以直接读写磁盘的扇区,由于当时的软盘很容易坏(常见的就是0磁道被划伤),所以那个时候能用PCTools修复软盘的在我眼中都是高手。当时对FAT表,32个字节的文件(或目录)信息表基本都了解,唯一比较可惜的是,自己从来都没有用PCTools修改过磁盘的扇区信息(为什么呢?我想不外乎如下几个原因,一、相关资料比较匮乏(互联网真是一个好东西);二、掌握这种技能的人相对比较保守,不肯轻易示人;三、当时我的主要兴趣是用C语言实现各种数学算法,直到现在,我的内心深处也是对相对偏硬的知识有一种近乎本能的排斥(我当时编写的那些程序直到今天都运行正常,那些相对偏硬(或偏底层)一点的技术,如驻留内存技术、直接打屏技术、修改中断向量表技术、操作Bios中断、DOS中断技术、西文DOS下显示汉字技术,其实到目前已经作古))。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

    下面几点疑问其实就是我的疑问,不敢说我的理解是正确的,但最起码比以前的理解更接近真相。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

1、  FAT32FAT16文件系统在数据存取方面更有效率,因为它的簇数所占字节数比后者小?
plcjs.技.术_网

答:这种理解是比较片面的。如下表(微软默认格式化参数)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLCJS_COM-PLC-技.术_网

FAT16文件系统
P.L.C.技.术.网——可编程控制器技术门户

WWW.PLCJS.COM——可编程控制器技术门户

FAT16文件系统
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

磁盘大小
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

扇区/
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

字节数
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

磁盘大小
WWcW_PLCJS_COM-PLC-技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

扇区/
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

字节数
plcjs.技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

4.1~16MB
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

2
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

P.L.C.技.术.网——可编程控制器技术门户

1k
WWcW_PLCJS_COM-PLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

32.5~260MB
WWW_PLC※JS_COM-PmLC-技.术_网

WWcW_PLCJS_COM-PLC-技.术_网

1
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

512
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

<=128MB
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

4
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLCJS_COM-PLC-技.术_网

2k
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW.PLCJS.COM——可编程控制器技术门户

<=8GB
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

8
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

4k
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

<=256MB
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

plcjs.技.术_网

8
plcjs.技.术_网

plcjs.技.术_网

4k
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

<=16GB
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

16
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_PLCJS_COM-PLC-技.术_网

8k
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

<=512MB
plcjs.技.术_网

——可——编——程——控-制-器-技——术——门——户

16
P.L.C.技.术.网——可编程控制器技术门户

WWcW_PLCJS_COM-PLC-技.术_网

8k
WWW_PLCJS_COM-PLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

<=32GB
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

32
P.L.C.技.术.网——可编程控制器技术门户

WWW_PL※CJS_COM-PLC-技.术_网

16k
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

<=1GB
WW.W_PLC※JS_C,OM-PL,C-技.术_网

W1WW_P4LCJS_COM-PLC-技.术_网

32
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

——可——编——程——控-制-器-技——术——门——户

16k
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

>32GB
WWW.PLCJS.COM——可编程控制器技术门户

WWW_P※LCJS_COM-PLC-)技.术_网

64
WWW_P※LCJS_COM-PLC-)技.术_网

——可——编——程——控-制-器-技——术——门——户

32k
WWW_P※LCJS_CO※M-PLC-技-.术_网

plcjs.技.术_网

<=2GB
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

64
WWW_PL※CJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

32k
——可——编——程——控-制-器-技——术——门——户

P.L.C.技.术.网——可编程控制器技术门户

 
WWW_PL※CJS_COM-PLC-技.术_网

WW.W_PLC※JS_C,OM-PL,C-技.术_网

 
WWW_PLCJS_COM-PLC-技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

W1WW_P4LCJS_COM-PLC-技.术_网

其实对小容量存储器<=256M我倒是时比较建议用FAT16格式,至于小于4M的存储器那就不要难为FAT16了,直接采用FAT12吧。
WWW_PL※CJS_COM-PLC-技.术_网

 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

2、  怎样区分FAT12FAT16FAT32文件系统?
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

答:通过数据区所占用的簇数来判断,微软的文档中号称这是检查FAT文件系统类型的唯一办法,称这个世上不存在簇数大于4084FAT12卷,也不存在簇数小于4085或是大于65524FAT16卷,同样没有哪个FAT32卷的簇数小于65525。如果你坚持要违背这个规则来创建一个FAT卷,那么微软的操作系统将无法对此卷进行操作,因为它不认为这是FAT文件系统。
WW.W_PLCJS_COM-PLC-技.术_网

   簇数=(扇区总数-(保留扇区数+FAT表个数*FAT表所占扇区数)+根目录所占扇区数))/每簇扇区数
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 
WWcW_PLCJS_COM-PLC-技.术_网

3、  主要分区、扩展分区、逻辑驱动器?
WWW_P※LCJS_COM-PLC-)技.术_网

答:磁盘系统最初设计的时候,认为一个磁盘分四个分区就够了,这四个分区就是主要分区,由磁盘引导扇区DPT磁盘分区表进行配置(一个分区配置占16个字节,共64个字节)。随着硬盘容量的增大(更有可能的是最初设计的时候就已经考虑到了这种情况),分四个分区不能满足需要了,特别是FAT16时代,一个硬盘大于8G,分四个区后,剩下的空间就没法利用了。扩展分区这个时候的意义就来了,可以把扩展分区又看成一个小磁盘,它的初始扇区的地址由DPT磁盘分区表任意4个中的任一个指定(注意,在磁盘类型这个字节的配置中一定设置为0x05,它告诉系统,这个地址指向的分区是扩展分区,其它常用的值如,01-FAT32 06-FAT1607-NTFS分区,在不知道这个知识的情况下,害的我到处到在google上搜索,怎样区分MDRDBR扇区信息)。逻辑驱动器是扩展分区这个小磁盘上的主要分区,不过这个分区前面一定要有虚拟MDR引导记录扇区,这个扇区中DPT磁盘分区表再指向实际的磁盘分区(有点绕),这时候的分区内容就和主要分区一样了。所以嘛,如果你仅分四个以内(包括四个)的分区,我建议最好都分成主分区。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_PLCJS@_COM%-PLC-技.术_网

 
WWW_PLCJS@_COM%-PLC-技.术_网

4、  U盘能否分区?
WWW.PLCJS.COM——可编程控制器技术门户

答:原先我以为U盘和硬盘一样,随意分区,和什么样的优盘没有什么关系,事实证明我错了。目前据我所知道的是,如果你优盘插入后,系统把它当作硬盘,那么恭喜你,你的优盘可以分区了(不要想当然的认为,格式化为HDD格式就可以了,其实和这个没有关系,应该和U盘里面的相关驱动程序有关系,我把一个可分区的优盘信息内容全部克隆到另一个优盘上了,事实上仅可以看到第一个分区的内容,如果你用磁盘管理程序来看该磁盘内容,你可以看到那个分区,但是不能格式化,系统提示:分区未启用)。
WWW_P※LCJS_COM-PLC-)技.术_网

  
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

5、  怎样直接读写硬盘指定的扇区?
WW.W_PLCJS_COM-PLC-技.术_网

答:以前认为很复杂,其实很简单,用流函数操作即可(需要超级用户的权限)。
WWcW_PLCJS_COM-PLC-技.术_网

CreateFileCloseHandleWriteFileReadFile四个API函数搞定,唯一区别的是,文件名称要特别设置。
WWcW_PLCJS_COM-PLC-技.术_网

对逻辑磁盘,其文件名称为:“\\.\C:”、“\\.\D:  … … 其读写的0
WWW_PL※CJS_COM-PLC-技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行