FAT文件系统规范v1.03学习笔记---3.根目录区之FAT目录项结构
1.前言
本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记。
每个FAT文件系统基本区域由4部分组成,这些基本区域按如下顺序排列:


对于FAT32典型区域分布如下:

本节主要介绍根目录区的内容
2.根目录区
(1)FAT目录是由32Bytes的线性表构成的“文件”
(2)根目录是一个特殊的目录,存在每一个FAT卷中
(3)对于FAT12/FAT16:
-根目录存储在磁盘固定的地方,紧跟在最后一个FAT表后
-根目录的扇区数固定,根据BPB_RootEntCnt计算得出
-FAT12/FAT16根目录的扇区号是相对该FAT卷第一个扇区的偏移量

(4)对于FAT32:
-根目录由簇链组成,扇区数不固定,跟普通文件相同。
-根目录的第一个簇号存储在BPB_RootClus中,这个值通常为2,也就是FAT32的根目录通常存放在数据区
-根目录有一个设置了ATTR_VOLUMN_ID属性位的文件,此文件在整个FAT卷是唯一的
3.FAT32目录项结构(短文件目录项)


注:[1]如上目录项各字段含义参考Microsoft Extensible Firmware Initiative FAT32 File System Specification中文版p16
[2]ATTR_VOLUMN_ID,在一个FAT卷中只能有一个文件设置此位,且该文件必须在根目录中,该文件名实际为该卷卷标,DIR_FstClusHI和DIR_FstClusLo
[3]ATTR_LONG_NAME:表明此文件为另个有长文件名的文件的一部分
[4]创建目录需完成:
-“文件”的ATTR_DIRECTORY属性置位,DIR_FileSize置0
-为目录项(FAT12/FAT16根目录项除外)分配一个簇,DIR_FstClusHI和DIR_FstClusLo设置为该簇簇号,并在FAT表中为该簇设置EOC标志,为该簇每个字节设置为0
[5]对于根目录,如上已完成目录创建;对于普通目录,需要在分配的簇空间的头两个32bytes创建两个特殊的目录项:"."和".."
FAT文件系统规范v1.03学习笔记---3.根目录区之FAT目录项结构的更多相关文章
- FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- FAT文件系统规范v1.03学习笔记---1.保留区之 Fat32 FSInfo扇区结构和备份启动扇区
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- FAT文件系统规范v1.03学习笔记---2.FAT区之FAT数据结构(Fat Data Structure)
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- FAT文件系统规范v1.03学习笔记---1.保留区之启动扇区与BPB
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- amazeui学习笔记二(进阶开发1)--项目结构structure
amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...
- [原创]java WEB学习笔记02:javaWeb开发的目录结构
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- linux学习笔记之文件类型,及目录介绍
引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...
- linux命令学习笔记(23):Linux 目录结构
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件 目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下 ...
- HDFS v1.0学习笔记
hdfs是一个用于存储大文件的分布式文件系统,是apache下的一个开源项目,使用java实现.它的设计目标是可以运行在廉价的设备上,运行在大多数的系统平台上,高可用,高容错,易于扩展. 适合场景 存 ...
随机推荐
- nfs环境搭建报错clnt_create: RPC: Program not registered
有时候搭建完成后,使用showmount -e ip检测服务端服务器情况的是,会出现clnt_create: RPC: Program not registered 这个错误,表示rpc程序为注册成功 ...
- java程序员常用的linux命令
作为一个java后端开发者,在日常工作中肯定会有和linux打交道的时候.下面我整理了一些开发中可能需要用到的一些命令(写这篇随笔前,我也没有什么操作经验,主要防止自己忘记这些操作命令,以后有用到新的 ...
- Windows LTSC、LTSB、Server 安装 Windows Store 应用商店
下载安装包 打开网址 https://store.rg-adguard.net/ 以 PackageFamilyName 方式搜索 Microsoft.WindowsStore_8wekyb3d8bb ...
- HTML5 accesskey的用法
<button onclick="start()" accesskey="s">开始</button> <button oncli ...
- spring boot集成redis的血泪史
首先说明环境不是我搭建的,然后因项目需要添加redis的时候,麻烦来了.springboot 用的是1.5.9因为以前弄过redis,所以直接拿过来,麻烦了首先是莫名的错误,连项目都启动不了.但是最后 ...
- 044、vloume声明周期管理(2019-03-07 周四)
参考https://www.cnblogs.com/CloudMan6/p/7214828.html 如果Data Volume 中存放的是重要的应用数据,如何管理volume对应用至关重要. ...
- 向量空间模型(Vector Space Model)的理解
1. 问题描述 给你若干篇文档,找出这些文档中最相似的两篇文档? 相似性,可以用距离来衡量.而在数学上,可使用余弦来计算两个向量的距离. \[cos(\vec a, \vec b)=\frac {\v ...
- 在window上使用 linux shell 删除文件夹递归地
目的 在windows环境下, 整理代码,代码中含有 .svn 文件夹, 此文件夹在所有受控目录下都存在, 需要统一删除. 但是对windows的shell不熟悉,想用linux rm来删除, 如何实 ...
- 【深入理解JVM】:Java类继承关系中的初始化顺序
尝试着仔细阅读thinking in java 看到一篇很好的文章http://blog.csdn.net/u011080472/article/details/51330114
- 【Ubuntu】安装Java和Eclipse
1. 安装Java 1> sudo add-apt-repository ppa:webupd8team/java 2> sudo apt-get update 3> sudo ap ...