FAT 文件系统数据结构 一、硬盘的物理结构: 二、硬盘数据物理存储结构 三、硬盘文件系统实现的数据结构 根文件夹的首簇是 0 0 0 2 ,文件名对于短文件名,系统将文件名分成两部分进行存储,即主文件名+扩展名
0x0~0x7 字节记录文件的主文件名,0x8~0xA 记录文件的扩展名,取文件名中的 ASCII 码值
不记录主文件名与扩展名之间的"
" 主文件名不足 8 个字符以空白符(20H)填充,扩展名不足 3 个字符同样以空白符(20H)填充
0x0 偏移处的取值若为 00H,表明目录项为空;若为 E5H,表明目录项曾被使用,但对应的文件或文件夹已被删除
(这也是误删除后恢复的理论依据)
文件名中的第一个字符若为“
”表示这个簇记录的是一个子目录的目录项
”代表当前目录;“
”代表上级目录(和我们在 dos 或 windows 中的使用意思是一样的,如果磁盘数据被破坏,就可以通过这两个目录项的具体参数推算磁盘的数据区的起始位置,猜测簇的大小等等,故而是比较重要的)
四、示例读写硬盘的数据的 ARM 数据结构 ****************************** * 长文件名在 FAT 文件系统上的实现 * ****************************** 2008/10/28 asdjf@163
com www
armecos
com 一般来说,嵌入式里使用 DOS 传统的“8+3”文件名格式基本上就够用了,但是在某些情况下,譬如为了和 Windows/Linux操作系统无缝交互,最好支持长文件名
为此,在《ecos 增值包》里增加了 FAT 长文件名组件,实现如下功能: 1、支持英文版长文件名; 2、支持简体中文版长文件名; 3、同时支持 Windows 下 UTF-16LE 和 Linux下 UTF-8 编码长文件名 以上所