2012-12-02 55 views
2

我想了解一个FAT文件系统是如何工作的。从FAT 16分区的附接的第一扇区我还可以理解,每扇区如何遍历FAT目录,文件

  1. 字节=每簇= 4
  2. FAT 16的文件系统512
  3. 扇区。
  4. 保留扇区= 4
  5. FAT表计数= 2
  6. 在根目录512 =
  7. 总扇区条目总数= 204800.
  8. 根目录扇区= 32
  9. 尺寸FAT表= 200.
  10. 第一数据扇区= 436(4 + 2 * 200 + 32)。
  11. 群集计数= 51091.

First sector of FAT partition

Root目录是在第404次扇区(0x32800th字节)在地址0x32800

Root directory

Root目录附接。根目录有两个名为a,b的文件夹和一个名为file.txt的文件。在给定的图片上面如何区分文件和文件夹。

下面列出的疑问: 1.文件夹条目应该以0x2E开头,但没有这样的值。那么如何找出给定的条目是文件还是文件夹呢? 2.您可以看到根目录中的每个条目占用64个字节(而不是32个字节)。每个文件和文件夹似乎有2个32字节的条目。例如,文件夹'a'在0x32800和0x32820处有条目(总共为64字节)。 3.在这种情况下,值0x41表示什么?值0x41出现在0x32800,0x32820,0x32840,0x32880。 0x32860和0x328A0处的值与0x41不同。 4.地址0x32800(0x32800 + 0x1a = 0x3281a)的偏移量0x1A的值为0,地址0x32820(0x32820 + 0x1a = 0x3283a)的偏移量0x1A的值为3.哪个是与文件夹'a'对应的正确簇号?

回答

3

不,文件夹条目不以“。”开头。 (0x2E)除非他们是为了。和..子目录条目(这些不在根目录中)。如果dirent是目录,dirent的属性字节会设置0x10位。

您还在查看长文件名的目录。原始的FAT文件系统规范只允许11个字符名称全部大写且位于OEM代码页中。 Windows 95扩展了这一点。在stackoverflow上解释这是如何工作的非常复杂。我建议查看LFN或长文件名的MSDN文档。

http://technet.microsoft.com/en-us/library/cc938438.aspx

0

脂肪**文件系统保存所有文件作为一个基本的规模,除非该文件比大小然后重新适应较大的大小来保存整个文件

但这里的关键是如果你有磁盘空间的分配,FAT文件系统主要是好的,如果可能的话,我会推荐使用NTFS文件系统。你的显示图像看起来像一个软盘驱动器的注册码