wsszsmx 发表于 2008-6-21 14:11:42

关于“子目录”所在扇区的计算方法?



1+2XFAt的扇区数+FDT的扇区数+(起始簇号-2)X每簇扇区数


2XFAt的扇区数这里可以理解!可其他参数,应该怎么理解?

yachengcn 发表于 2008-6-21 14:27:15

回复 1# 的帖子

LZ是的FAT16的文件系统?
你的这个是计算DATA的所在扇区

lxb36 发表于 2008-6-21 18:59:51

好象也是计算FAT16文件和目录的起始扇区数

lughon 发表于 2008-6-21 21:27:43

这个公式,是计算目录项的启始簇

tclrz100e 发表于 2008-6-21 21:47:59

这是FAT16的文件系统的文件起始扇区的算法!!
1+2XFAt的扇区数+FDT的扇区数+(起始簇号-2)X每簇扇区数
从你自己发的图中容易理解的:1是DBR占用的扇区数据(FAT16中的DBR一般是占用一个扇区,FAT32中的DBR一般占用32个扇区),它后面是FAT1和FAT2,它们占用的扇区数据是相同的,所以是2XFAt的扇区数,FAT后是根目录区,它和FAT32不一样,FAT32的根目录区合并中DATA区中,这样做的目的是根目录文件数没有限制,一般FAT16的根目录区的扇区数是32,所以根目录下最多能容纳32*512/32=512个文件,起始簇号为什么要减2是因为数据是因为FAT表中的数据是从第2簇开始的(第0 1两个簇号保留没用,作FAT表的开始标志!!)。

小小 发表于 2008-6-21 22:27:04

1+2XFAt的扇区数+FDT的扇区数+(起始簇号-2)X每簇扇区数
这个计算工式只是对于FAT16格式分区的
是用来计算文件的起始逻辑扇区的
FDT是文件目录表File Directouy Tabler 缩写,是根目录区
加1是因为早期系统版本中指定的被保留用做引导的扇区数为1即我们通常所说的DBR本身占用的一个扇区。现在的系统版本一般为32
加FDT扇区是因为在早期的系统中,FDT是固定长度的,为32个扇区。现在的系统FDT已成为DATA的一部分。
起始簇-2是因为簇号从2开始
至于每簇扇区数就不用再解释了吧

小小 发表于 2008-6-21 22:36:34

其实现在想要计算文件的起始逻辑扇区用不着这么复杂的工式的,会用WINHEX的人应该知道的很简单,从文件目录项的第26、27字算出文件的起始簇号直接填就会转到文件的起始逻辑扇区

elite306 发表于 2008-6-25 10:34:58

从文件目录项的第26、27字算出文件的起始簇号直接填就会转到文件的起始逻辑扇区?

这句话不是很理解,有没有实例说明一下呀,谢谢~

js_top 发表于 2008-12-14 23:13:27

算出文件的起始簇号直接填:
比如起始簇号是D806H,倒转,转换成10进制是1752(是簇号),再"转到扇区",输入簇号1752就是该文件的起始逻辑扇区了

(_芡吻嘚臉° 发表于 2008-12-15 13:20:18

恩好的啊       顶顶顶顶顶顶顶顶顶顶顶顶顶顶
页: [1]
查看完整版本: 关于“子目录”所在扇区的计算方法?