如何判断一个文件的起始位置与结束呢
用Winhex软件时,怎么判断一个文件的起始位置与结束位置..还有,如何恢复被格式化过的数据呢, 找到了关于文件头的标识,,
那怎么来确定文件结束的位置呢, 一、扇区分簇管理
操作系统或应用程序欲将数据写入一个磁盘文件时,必须在磁盘上找到可以使用的未用扇区。反过来要将数据从磁盘文件中读出时,也要在磁盘上找到已经储存了相应数据的有关扇区,要查找扇区必须知道扇区的地址,文件分配表FAT就是记录扇区地址的。
因为硬盘的扇区非常多,如果将每个扇区的地址都记录在文件分配表里,势必造成文件分配表体积庞大,查找时效率将会很低。为解决这个问题,采用了将扇区分组管理的方法。分组的过程称作扇区分簇,是由高级格式化程序在格式化磁盘时完成的。
扇区分簇以后,将每个簇的地址记录到文件分配表FAT里去。由于一个簇包含很多扇区,所以文件分配表的体积减小了,查找的速度就提高了。
一个簇能包含多少扇区,是由分区格式和分区的大小决定的。
二、簇链和文件检索过程
当使用一个新格式化的逻辑驱动器时,文件数据存放的簇号是连续的,使用一段时间后,由于经常对文件进行删除、复制和修改操作,每个文件分配的簇号就不一定是连续的了。为了确保在存取文件时能够检索到所有连续或不连续的扇区地址,文件分配表采用了“簇链”的记录方式。
当需要从磁盘上读取一个文件时,首先从文件目录表中找到该文件的目录登记项。继而从目录登记项的有关字段,查到分配给该文件的第一个簇号,根据第一簇号的内容可以计算出两组数据。
其中一组数据指出了文件在数据区DATA里的第一簇扇区首地址,从第一簇扇区首地址开始数据是连续存放的,连续存放多少个扇区由分区格式和分区大小决定。
另外一组数据指出了FAT表内簇登记项的地址,如果其值是结束标志FFFFFF0FH(FAT32格式),说明文件至此已经结束。如果不是结束标志,则该登记项的值为第二个簇号,据此又可以计算出两组数据,继而确定文件在数据区里第二簇扇区首地址和FAT表内的第二个簇登记项的地址。
继续重复上面的过程,就可以得到文件在DATA区里的全部数据,以及文件在FAT所有簇登记项的地址。 同意楼上 有点不能理解,可不可以举个例子呢 同感...有例子就会形象一点 已经解决,谢谢各位的回复,, 1# ycb01010522
我也想知道,FAT32是怎么定位文件的 还是有点不太清楚!
页:
[1]
2