我们正在用C构建一个fat32文件系统操作工具,目前正在尝试访问根目录中的所有条目(位于两个FAT表之后)。
第一个问题是:所有根目录条目是否在数据区域中是连续的?如果没有,给定第一个条目,我们如何访问下一个条目?
是否与“低群集/高群集”标签有关,还是需要在FAT表中查找(根目录)?
基本上,我们有“方程式”将我们引向数据区域。基于此,我们指向群集,但在此之后,我们真的不知道如何在根目录中找到下一个条目。
这可能看起来令人困惑,但如果你需要代码或更多信息,我会提供它们。
提前谢谢。
答案 0 :(得分:1)
FAT(也是FAT32)目录条目是32字节,并按顺序出现。
要存储长文件名,条目可能需要32个字节的倍数。
关于如何标记L(ong)F(ile)N(ames)(来自wikipedia):
长文件名(LFN)存储在FAT文件系统上,在正常文件输入之前使用特技添加(可能是多个)附加条目到目录中。附加条目标有卷标,系统,隐藏和只读属性(产生0x0F),这是MS-DOS环境中不期望的组合,因此被MS-DOS程序和第三方忽略公用事业。 ( FF )
引用您的第二个问题(来自wikepedia):
[...] VFAT LFN条目的簇值始终为0x1A,设置为0x0000,长度条目为0x1C,永远不是0x00000000 [...]