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目录项结构的更多相关文章

  1. FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  2. FAT文件系统规范v1.03学习笔记---1.保留区之 Fat32 FSInfo扇区结构和备份启动扇区

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  3. FAT文件系统规范v1.03学习笔记---2.FAT区之FAT数据结构(Fat Data Structure)

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  4. FAT文件系统规范v1.03学习笔记---1.保留区之启动扇区与BPB

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

  5. amazeui学习笔记二(进阶开发1)--项目结构structure

    amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...

  6. [原创]java WEB学习笔记02:javaWeb开发的目录结构

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. linux学习笔记之文件类型,及目录介绍

    引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...

  8. linux命令学习笔记(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件 目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下 ...

  9. HDFS v1.0学习笔记

    hdfs是一个用于存储大文件的分布式文件系统,是apache下的一个开源项目,使用java实现.它的设计目标是可以运行在廉价的设备上,运行在大多数的系统平台上,高可用,高容错,易于扩展. 适合场景 存 ...

随机推荐

  1. ELK 安装与基本配置(一)

    对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我们将这三个组合起来的技 ...

  2. nginx之代理websocket

    nginx代理websocket:NGINX通过允许一个在客户端和后端服务器之间建立的隧道来支持WebSocket.为了NGINX发送来至于客户端Upgrade请求到后端服务器,Upgrade和Con ...

  3. linux下生成00 01 02..99的这些数

    [root@localhost ~]# seq -s " " -w 9901 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 ...

  4. 解决CDN传统方法引入Iview icon 不显示问题

    因为需要字体文件,可以在github上下载. 将文件下载之后放到fonts文件夹下,fonts文件夹要与Iview.css在同级目录

  5. 面向对象+jquery实现拖拽功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. parseFloat()为什么没有效果

    parseFloat() 函数可解析一个字符串,并返回一个浮点数.看清楚说明是操作字符串,如果是数值类型parseFloat([],x)会失去效果. 正确的用法:parseFloat().toFixe ...

  7. springMVC下载中文文件名乱码【原】

    重点就在于添加  "attachment;filename*=utf-8'zh_cn'" + fileName //遇到的现象是,下载含有中文文件名的文件时,能获取到文件,但是使用 ...

  8. HDU 6400(括号组合 ~)

    题意是说在 h 行 w 列的矩阵中,通过设计使得尽可能多的行或列能满足题中的平衡条件. 如果行数(列数)是奇数,那么每一列(行)一定不能平衡,就要按照满足每一行(列)平衡,输出“ () “:若行数和列 ...

  9. vue 移动端日期选择组件 vue-mobile-calendar

    vue-mobile-calendar cnpm install vue-mobile-calendar -S import Vue from 'vue' import Calendar from ' ...

  10. docker 容器内启动 sshd 启动报错

    创建容器设置密码 安装 openssh-server 启动出错 在容器内 使用 /usr/sbin/sshd -d 启动报错? [root@9d41c7f36c5e tmp]# /usr/sbin/s ...