我正在研究在資源受限的微控制器上使用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