1

fat16 システムの場合、サブディレクトリとファイルの区別について非常に混乱しています。サブディレクトリとファイルは構造が似ているため、ディレクトリとファイルをどのように区別し、どのようにディレクトリをたどってファイルにたどり着くのでしょうか?

最初は、fat16 の 8.3 命名規則の 1 バイト目として、すべてのディレクトリ エントリが '0x2e' で始まると考えていました。しかし、実際には、0x2e で始まるすべてのディレクトリを見つけることはできませんでしたが、ディレクトリの名前を直接見つけることができませんでした。では、fat16 でディレクトリとファイルを区別するにはどうすればよいですか?

4

1 に答える 1

2

ディレクトリには、属性フィールドに 0x10 ビットが設定されています。ファイルはしません。最初のバイトは「.」です。(0x2E) 自己および親ディレクトリ (存在する場合) (ルートにない)。

ディレクトリ「ファイル」の内容は、ディレクトリ エントリの配列です。

長いファイル名を無視して、ファイルを検索する方法は次のとおりです。

  1. 検索ディレクトリ = ルート
  2. 残りのパスから 8.3 名を解析
  3. DirectoryEntry = SearchDirectory で 8.3 名を検索
  4. 残りのパスが空の場合、DirectoryEntry は要求されたエンティティです
  5. If Directory.Attribute & 0x10 == 0 then ERROR (ディレクトリが必要)
  6. SearchDirectory = DirectoryEntry.contents
  7. 後藤2
于 2012-12-03T21:41:28.557 に答える