我正在研究在资源受限的微控制器上使用FAT16文件系统结构的低级应用程序,这需要我编写我自己的自定义访问代码。我已经研究过使用像Petit FAT和FatFS这样的库,但不幸的是我不认为这些将满足我的需求。尽管如此,它们已经成为FAT如何工作的有用参考。FAT16目录
我仍然有麻烦的一个领域是子目录条目。
根据this,目录条目可以指向1个起始簇。对于数据文件,这只是第一个数据集群。对于目录,这是子目录的起始簇(可能是另一个目录条目)。
这工作得很好,如果有1只从根目录目录路径下的基本文件,但我不明白这是如何让你分支出来任何给定目录下的多个文件/目录。
ex。目录结构:
- root dir 1
- sub dir 1
- file 1
- sub dir 2
- file 2
- root dir 2
- sub dir 3
根据我的FAT16结构的认识,
紧随脂肪将是第一个根目录条目包含信息root dir 1
集群。然后,第一个群集字段将包含sub dir 1
的群集地址,第一个群集字段将包含file 1
的群集地址,第一个群集指向数据群集。
然后第二个根目录条目将在包含有关root dir 2
的信息的FAT结束之后在第二个集群处开始。其第一个群集将指向sub dir 3
的群集,该群集的第一个群集将指向一个空群集(如在FAT中标记的)。
我在这里错过了什么?我无法找出一种方法来从根目录条目导航到sub dir 2
。
我想你可能会混淆“根目录”与“目录”一般。看看这里:http://en.wikipedia.org/wiki/File_Allocation_Table – paulsm4
我认为你是对的,根目录指向类似'A:',或'0:'等的东西,指向'root dir 1'的条目(正确?如果是的话,我会更新我的问题)。但是,我不确定这是如何解决多个目录/文件在单个目录中的问题。 – helloworld922