0

私たちは C 言語で fat32 ファイルシステム操作ツールを作成しており、現在、ルート ディレクトリ (2 つの FAT テーブルの直後にある) 内のすべてのエントリにアクセスしようとしています。

最初の質問は、すべてのルート ディレクトリ エントリがデータ領域で連続しているかどうかです。そうでない場合、最初のエントリが与えられた場合、どうすれば次のエントリにアクセスできますか?

タグ「低クラスター/高クラスター」と関係がありますか、それとも FAT テーブル (ルート ディレクトリ) を調べる必要がありますか?

基本的に、データ領域に導く「方程式」があります。それに基づいて、クラスターをポイントしますが、その後、ルート ディレクトリで次のエントリを見つける方法がよくわかりません。

これは紛らわしいかもしれませんが、コードや詳細情報が必要な場合は、提供します。

前もって感謝します。

4

1 に答える 1

1

FAT (FAT32 も) ディレクトリ エントリは 32​​ バイトで、順番に表示されます。

長いファイル名を格納するには、エントリに 32 バイトの倍数が必要になる場合があります。

L(ong)F(ile)N(ames) のマーク方法について (ウィキペディアから):

長いファイル名 (LFN) は、トリックを使用して FAT ファイル システムに格納されます。つまり、通常のファイル エントリの前にディレクトリに (場合によっては複数の) エントリを追加します。追加のエントリは、ボリューム ラベル、システム、非表示、および読み取り専用の属性 (0x0F を生成) でマークされます。これは、MS-DOS 環境では想定されていない組み合わせであり、MS-DOS プログラムおよびサードパーティによって無視されます。ユーティリティ。( ff )


2番目の質問を参照してください(ウィキペディアから):

[...] VFAT LFN エントリでは、常に 0x1A のクラスタ値が 0x0000 に設定され、0x1C の長さエントリが 0x00000000 になることはありません [...]

于 2013-05-22T15:34:22.460 に答える