c - FAT32:根目录条目

标签 c fuse fat32

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

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

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

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

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

提前谢谢您。

最佳答案

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

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

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

Long File Names (LFN) are stored on a FAT file system using a trick—adding (possibly multiple) additional entries into the directory before the normal file entry. The additional entries are marked with the Volume Label, System, Hidden, and Read Only attributes (yielding 0x0F), which is a combination that is not expected in the MS-DOS environment, and therefore ignored by MS-DOS programs and third-party utilities. (ff)

<小时/>

引用您的第二个问题(来自 wikepedia ):

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

关于c - FAT32:根目录条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16694812/

相关文章:

python - 我可以用 fusion-python 实现有趣的项目

c - 如何解析原始 "disk"数据?

c++ - 陷阱表示

database - MinorFS : Installation

c - 如何在c中为微 Controller 定义新端口

java - 通过 Java 进程执行的软件的虚拟文件系统环境

c - c 语言中数据类型 BYTE、WORD 和 DWORD 的格式说明符?

windows - 如何在 Windows/Linux 平台上将 FAT32 文件系统转储到 USB 中?

c - 这段代码中的音频是如何播放的(C/SDL)

c - 我在哪里可以获得 gcc/clang 等 C 标准函数的源代码?