FATファイルシステムのファイル管理

FATのディレクトリの記述

FATのディレクトリには次のように記載されます
  020 46 41 54 33, 32 44 41 54 , 54 58 54 20, 00 5F 8D 63 ; FAT32DATTXT ._.c
  030 AA 38 AA 38, 01 00 68 63 , AA 38 02 00, 00 12 00 00 ; .8.8..hc.8......
  040 44 46 41 54, 33 32 20 20 , 20 20 20 10, 00 68 90 64 ; DFAT32     ..h.d
  050 AA 38 AA 38, 01 00 91 64 , AA 38 04 00, 00 00 00 00 ; .8.8...d.8......
  060 00 00 00 00, 00 00 00 00 , 00 00 00 00, 00 00 00 00 ; ................
  070 00 00 00 00, 00 00 00 00 , 00 00 00 00, 00 00 00 00 ; ................  
一つのファイルの定義は、32バイト毎に記載されます。

ディレクトリの定義

ディレクトリの記載例は、DFAT32という名称で 2008年5月10日 12時36分33秒です

8バイトと3バイトでファイル名とファイルタイプを表します FATファイル定義情報 FATファイル定義情報

アトリビュートの定義

アトリビュート(attr)で 0x10 はDIRECTORYを示します。 FATファイル定義情報
その他の定義は
  0x01 READ ONLY
  0x02 HIDDEN
  0x04 SYSTEM
  0x08 VOLUME ID
  0x10 DIRECTORY
  0x20 ARCHIVE 
となります

予約

WindowsNT用に予約されている部分です FATファイル定義情報

作成日の時刻(ミリ秒)

作成日の時刻をミリ秒で 0-199の値が記録されます
0x68 は 104ですので 1040 ミリ秒を表します FATファイル定義情報

作成時刻

作成時刻が記録されます FATファイル定義情報
	0- 4: 秒(1/2単位で記録)
	5- 8: 分
	9-15: 時
90 64 は 0x6490 から
    (0x6490 & 0xf800) >> 11) = 0x0c = 12 時
    (0x6490 & 0x07e0) >>  5) = 0x24 = 36 分
    (0x6490 & 0x001f) >>  0) = 0x10 = 16 -> *2 = 32 秒
      -> 32 + (0x68) 1.04 = 33.04 -> 33秒

作成日

作成日が記録されます FATファイル定義情報
	0- 4: 日
	5- 8: 月
	9-15: 年(0-127) 1980年が 0 
AA 38 は 0x38aa から
    (0x38aa & 0xf800) >> 11) = 0x1c = 28 + 1980 = 2008 年
    (0x38aa & 0x07e0) >>  5) = 0x05 =  5 月
    (0x38aa & 0x001f) >>  0) = 0x0a = 10 日

最終アクセス日

最終アクセス日が記録されます FATファイル定義情報
	0- 4: 日
	5- 8: 月
	9-15: 年(0-127) 1980年が 0 
AA 38 は 0x38aa から
    (0x38aa & 0xf800) >> 11) = 0x1c = 28 + 1980 = 2008 年
    (0x38aa & 0x07e0) >>  5) = 0x05 =  5 月
    (0x38aa & 0x001f) >>  0) = 0x0a = 10 日

クラスタ番号の上位16ビット

FAT32の場合についてだけクラスタ番号の上位16ビットが記録されます
01 00 は 0x0001
FATファイル定義情報

書込時刻

書込時刻が記録されます FATファイル定義情報
	0- 4: 秒(1/2単位で記録)
	5- 8: 分
	9-15: 時
91 64 は 0x6491 から
    (0x6491 & 0xf800) >> 11) = 0x0c = 12 時
    (0x6491 & 0x07e0) >>  5) = 0x24 = 36 分
    (0x6491 & 0x001f) >>  0) = 0x11 = 17 -> *2 = 34 秒

書込日

書込日が記録されます FATファイル定義情報
	0- 4: 日
	5- 8: 月
	9-15: 年(0-127) 1980年が 0 
AA 38 は 0x38aa から
    (0x38aa & 0xf800) >> 11) = 0x1c = 28 + 1980 = 2008 年
    (0x38aa & 0x07e0) >>  5) = 0x05 =  5 月
    (0x38aa & 0x001f) >>  0) = 0x0a = 10 日

クラスタ番号の下位16ビット

クラスタ番号の下位16ビットが記録されます
04 00 は 0x0004
上位と合わせて 0x00010004 = 65540 クラスタ
FATファイル定義情報

ファイルサイズ

ディレクトリのサイズは記録されません
FATファイル定義情報

カレントディレクトリの定義

ファイル名が "."(ピリオド) の場合にはカレントディレクトリを表します
FATファイル定義情報

親ディレクトリの定義

ファイル名が ".."(ピリオド2つ) の場合には親ディレクトリを表します
FATファイル定義情報

このページはリンクフリーですが、リンクの際には連絡を頂けると有難いです
リンクの際の連絡はここからお願いします(fatlink@pjc.co.jp)

Mail: freeinfo@pjc.co.jp