2012-12-03 72 views
0

如果在fat16系統中,我很難區分子目錄和文件。由於子目錄和文件具有相似的結構,因此我們如何區分目錄和文件以及如何遍歷目錄來訪問文件?如何區分fat16中的目錄和文件條目?

我最初認爲所有的目錄條目都以'0x2e'開始,作爲fat16中8.3命名約定的第1個字節。但實際上我找不到所有以0x2e開頭的目錄,但直接找到目錄的名稱。 那麼,如何區分目錄和fat16中的文件?

+0

名稱不是針對目錄的指示器。請檢查文件屬性。 –

回答

2

目錄在屬性字段中設置了0x10位;文件不。第一個字節是「。」 (0x2E)爲自我和父目錄,如果存在(它們不在根目錄中)。

目錄「文件」的內容是一個目錄項的數組。

忽略長文件名,你搜索文件的方法是:從剩餘路徑

  1. SearchDirectory =根
  2. 解析過8.3名
  3. 的DirectoryEntry =查找8.3名SearchDirectory
  4. 如果剩餘路徑爲空,則DirectoryEntry是請求的實體
  5. 如果Directory.Attribute&0x10 == 0,則ERROR(期待目錄)
  6. SearchDirectory = DirectoryEntry.contents
  7. 轉到2
+0

感謝您的信息 – sheeru

+0

您可以訪問MSDN.microsoft.com獲取格式的更多詳細信息。 – MJZ