1:查找数据开始扇区
从下图位置可知该磁盘数据开始扇区在第520个扇区。
可按下图方式找到第520个扇区。
下图所示既为第520个扇区存放的内容
2:查找FAT表
FAT表的位置与磁盘存储空间有关,本SD卡128M对应下表,应该每个簇有4个扇区,与下图也是对应的。
|
分区空间大小 |
每个簇的扇区 |
簇空间大小 |
|
0MB-32MB |
1 |
512个字节 |
|
33MB-64MB |
2 |
1k |
|
65MB-128MB |
4 |
2k |
|
129MB-225MB |
8 |
4k |
|
256MB-511MB |
16 |
8k |
|
512MB-1023MB |
32 |
16k |
|
1024MB-2047MB |
64 |
32k |
|
2048MB-4095MB |
128 |
64k |
在本SD卡128M的情况下,FAT1从第4个(从第0个开始算)扇区开始。
3:根目录的查找
根据根目录形式,里边前8个字节是文件名,因此只要搜文件名,就行了。
|
表11 FAT16目录项32个字节的表示定义 |
|||
|
字节偏移(16进制) |
字节数 |
定义 |
|
|
0x0~0x7 |
8 |
文件名 |
|
|
0x8~0xA |
3 |
扩展名 |
|
|
0xB |
1 |
属性字节 |
00000000(读写) |
|
00000001(只读) |
|||
|
00000010(隐藏) |
|||
|
00000100(系统) |
|||
|
00001000(卷标) |
|||
|
00010000(子目录) |
|||
|
00100000(归档) |
|||
|
0xC~0x15 |
10 |
系统保留 |
|
|
0x16~0x17 |
2 |
文件的最近修改时间 |
|
|
0x18~0x19 |
2 |
文件的最近修改日期 |
|
|
0x1A~0x1B |
2 |
表示文件的首簇号 |
|
|
0x1C~0x1F |
4 |
表示文件的长度 |
|
浙公网安备 33010602011771号