0

我们正在用 C 语言构建一个 fat32 文件系统操作工具,目前正在尝试访问根目录中的所有条目(位于两个 FAT 表之后)。

第一个问题是:数据区域中的所有根目录条目是否都是连续的?如果不是,给定第一个条目,我们如何访问下一个条目?

它与标签“低簇/高簇”有什么关系,还是我们需要在 FAT 表中查找它(根目录)?

基本上,我们有引导我们进入数据区域的“方程式”。基于此,我们指向集群,但在那之后,我们真的不知道如何在Root Directory中找到下一个条目。

这可能看起来令人困惑,但如果您需要代码片段或更多信息,我会提供它们。

先感谢您。

4

1 回答 1

1

FAT(也是 FAT32)目录条目为 32 字节,并按顺序出现。

要存储长文件名,条目可能需要 32 个字节的倍数。

关于如何标记 L(ong)F(ile)N(ames)(来自wikipedia):

长文件名 (LFN) 使用技巧存储在 FAT 文件系统上 - 在正常文件条目之前将(可能多个)附加条目添加到目录中。附加条目标有卷标、系统、隐藏和只读属性(产生 0x0F),这是 MS-DOS 环境中不期望的组合,因此被 MS-DOS 程序和第三方忽略公用事业。( ff )


参考您的第二个问题(来自维基百科):

[...] VFAT LFN entries always have the cluster value at 0x1A set to 0x0000 and the length entry at 0x1C is never 0x00000000 [...]

于 2013-05-22T15:34:22.460 回答