阅读:1425回复:3
菜鸟求教:fat/fat32文件系统中是如何定位文件的?
我知道在fat/fat32系统中,有一个fat表,指明了文件的簇链;目录文件则指明了文件的起始簇。
我的问题是:目录项中只有文件名,并没有指明文件的上级目录名以及再往前的目录名,而不同目录下文件重名是允许的,那么想定位一个文件,如何通过目录确定它的位置?重名的文件如何区分啊? :mad: |
|
沙发#
发布于:2004-11-12 09:37
每一个目录下面都有
. .. 两个子目录。 建议你找一个fat的资料(驱网里有),然后用disk32或则winhex自己手工找一遍文件,就知道怎么回事了。 相比较Ntfs来说,fat还是比较好办的。 |
|
|
板凳#
发布于:2004-11-12 14:09
我手头也有fat的资料,文中这样描述目录项:
全部32字节的定义如下: (1) 0-- 7字节 文件正名。 (2) 8--10字节 文件扩展名。 (3) 11字节 文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位。 (4) 11--13字节 仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。 (5) 13--15字节 24位二进制的文件建立时间,其中的高5位为小时,次6位为分钟。 (6) 16--17字节 16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。 (7) 18--19字节 16位二进制的文件最新访问日期,定义同(6)。 (8) 20--21字节 起始簇号的高16位。 (9) 22--23字节 16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数。 (10)24--25字节 16位二进制的文件最新修改日期,定义同(6)。 (11)26--27字节 起始簇号的低16位。 (12)28--31字节 32位的文件字节长度。 可是目录项中并没有你说的子目录信息,是不是我理解的有问题? |
|
地板#
发布于:2004-11-12 14:44
仔细看了一下fat的资料,终于搞清楚目录的原理,谢谢nustzhua兄的指点。
20分已给 [编辑 - 11/12/04 by javacard] |
|