C FAT32:根目录项

C FAT32:根目录项,c,fuse,fat32,C,Fuse,Fat32,我们正在用C构建一个fat32文件系统操作工具,目前正在尝试访问根目录中的所有条目(位于两个FAT表之后) 第一个问题是:数据区域中的所有根目录条目都是连续的吗?如果没有,给定第一个条目,我们如何访问下一个条目 它是否与标记“low cluster/high cluster”有关,或者我们是否需要在FAT表中查找它(根目录) 基本上,我们有一个“方程式”来引导我们进入数据区域。基于此,我们指向集群,但之后,我们真的不知道如何在根目录中找到下一个条目 这看起来可能令人困惑,但如果您需要一些代码或更

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

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

它是否与标记“low cluster/high cluster”有关,或者我们是否需要在FAT表中查找它(根目录)

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

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

提前感谢。

FAT(也叫FAT32)目录项为32字节,按顺序显示

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

关于L(ong)F(ile)N(ames)的标记方式(从):

长文件名(LFN)存储在FAT文件系统中,方法是在普通文件条目之前向目录中添加(可能有多个)附加条目。附加条目用卷标、系统、隐藏和只读属性(产生0x0F)标记,这是MS-DOS环境中不期望的组合,因此MS-DOS程序和第三方实用程序会忽略。(ff)


关于你的第二个问题(来自):

[…]VFAT LFN条目始终将0x1A处的集群值设置为0x0000,而0x1C处的长度条目永远不会为0x00000000[…]