檔案目錄表 FDT 及其結構

2021-04-09 02:35:25 字數 3063 閱讀 8671

用format命令對磁碟(或邏輯盤)進行格式化的時候,就已經為整個硬碟建立了乙個根目錄fdt。在根目錄下,使用者可以用dos命令"md"再建立不同的各個子目錄,以及子目錄下的子目錄。

根目錄以及各級子目錄都有自己的fdt。

在具體操作中,系統規定用字母c-z代表邏輯碟符,所以dos簡單地用「[碟符:]/」表示在根目錄下。根目錄的作用是分配根目錄下的所有檔案和子目錄的儲存空間(邏輯扇區號),並且通過裝置驅動程式介面確定有效的最大目錄項。

1.根目錄中的fdt

根目錄的作用是分配根目錄下的所有檔案和子目錄的儲存空間(邏輯扇區號),並通過裝置驅動程式介面確定有效的最大目錄項。

根目錄下的所有檔案及其子目錄在根目錄的檔案目錄表(fdt)中都有乙個「目錄登記項」或簡稱為「目錄項」。每個目錄登記項占用32個位元組,分為8個區域,提供有關檔案或子目錄的資訊。其中包括了dos的系統檔案(io.sys、msdos.sys、和command.com)的目錄項。

常用軟盤的根目錄(fdt)所在邏輯扇區如下:

360kb:5--11扇區,共7個扇區

1.2mb:15--28扇區,共14個扇區

1.44mb:19--32扇區,共14個扇區

在硬碟中,各邏輯盤的根fdt的起始邏輯扇區由分割槽容量確定。在fat16中,其大小總是32(20h)個扇區。fat32中的根fdt大小與其邏輯盤容量有關。

下面是用debug讀出1.44mb軟盤邏輯13h扇區開始的14個扇區內容的例子。

c>debug

-l 00 0 13 e

-d 00

0de5:0000 49 4f 20 20 20 20 20 20-53 59 53 27 00 00 00 00 io sys'....

0de5:0010 00 00 00 00 00 00 c0 32-bf 1c 1d 00 46 9f 00 00 ......2...f.....

0de5:0020 4d 53 44 4f 53 20 20 20-53 59 53 27 00 00 00 00 msdos sys'....

0de5:0030 00 00 00 00 00 00 c0 32-bf 1c 6d 00 fa 94 00 00 .......2 ..m...

0de5:0040 43 4f 4d 4d 41 4e 44 20-43 4f 4d 20 00 00 00 00 command com..

0de5:0050 00 00 00 00 00 00 c0 32-bf 1c b8 00 75 d5 00 00 .......2 ..u...

2.fdt中的目錄項

根目錄下的所有檔案及其子目錄在根目錄的檔案目錄表(fdt)中都有乙個「目錄登記項」或簡稱為「目錄項」。

由於每個檔案的目錄登記項占用32個位元組,用作目錄的乙個扇區(512位元組)最多只能裝入512/32=16個檔案。因此,在常用磁碟的根目錄下最多可建檔案或子目錄數如下:

360 kb: 共7個扇區, 7*16=112個檔案或子目錄。

1.2 mb: 共14個扇區,14*16=224個檔案或子目錄。

1.44mb: 共14個扇區,14*16=224個檔案或子目錄。

硬碟邏輯盤:共32個扇區,16*32=512個檔案或子目錄。

在fdt中,每個目錄登記項占用32個位元組,分為8個區域,提供有關檔案或子目錄的資訊,包括dos的系統檔案io.sys、msdos.sys的目錄項。

在fat16檔案系統中,乙個檔案目錄登記項32個位元組中個位元組的內容及含義如表6-6所示。

表6-6 fat16檔案目錄項內容及含義表

位元組位置

內  容  及  含  義

第0--7位元組

表示檔名

第8--10位元組

表示檔案的副檔名

第11位元組表示

檔案屬性

00h(讀寫)

01h(唯讀)

02h(隱藏)

04h(系統)

08h(卷標)

10h(子目錄)

20h(歸檔——只要完成了寫操作並已關閉,則該位置1)

第12--21位元組

保留未用

第22--23位元組

表示檔案的建立時間

第24--25位元組

表示檔案的建立日期

第26--27位元組

表示檔案的起始簇號(首簇號)

第28--31位元組

表示檔案的位元組數

fat16檔案系統對每個檔案來說其資料結構是乙個單項簇鍊錶,而檔案在檔案目錄表fdt中佔乙個檔案目錄項,每個檔案的首簇號就存放在該檔案的目錄項中,乙個檔案目錄項佔32個位元組。對fdt中乙個檔案目錄項的幾個引數值作如下說明:

(1)檔名

fat16檔案系統中,fdt的檔案目錄項中第0-7位元組為檔名(若有剩餘位元組則用空白符20h填充)。其中,第1位元組又表明了該檔案的狀態,它有如下3種取值方式:

·00h目錄項的空表目。

·e5表示該目錄項曾經使用過,但檔案已被刪除。

·2e表示該項為子目錄項。

其它任何字元表示乙個檔名(或子目錄名)的第乙個字元的ascii碼值。

(2)檔案屬性

第11位元組為檔案屬性位元組,按位規定如下:

b7b6

b5b4

b3b2

b1b0

未用

未用歸檔

子目錄卷標

系統隱藏

唯讀(3)檔案建立(修改)時間

·(第22位元組0--4位)以2秒為增量的二進位制樹

·(23位元組0--2位)+(22位元組5--7位)為分鐘

·(第23位元組3--7位)為小時

(4)檔案建立(修改)日期

·(第24位元組0--4位)為日期1--31

·(25位元組0位)+(24位元組5--7位)為月份1--12

·(第25位元組1--7位)為年號0--119(1980--2099)

(5)檔案首簇號

第26、27 位元組存放該檔案的首簇號。系統根據fat中該檔案的單鏈表即可找到它的全部內容。

要注意區分檔案目錄表(fdt)和fdt中的目錄登記項這兩個概念。

目錄登記項是乙個32位元組長的資料塊,它記錄了乙個檔案或子目錄的有關資訊。fdt是由若干目錄登記項組成的乙個表。根目錄區是盤卷上的乙個固定區域,根目錄及各子目錄都有各自的fdt

檔案目錄表 FDT 及其結構

用format命令對磁碟 或邏輯盤 進行格式化的時候,就已經為整個硬碟建立了乙個根目錄fdt。在根目錄下,使用者可以用dos命令 md 再建立不同的各個子目錄,以及子目錄下的子目錄。根目錄以及各級子目錄都有自己的fdt。在具體操作中,系統規定用字母c z代表邏輯碟符,所以dos簡單地用 碟符 表示在...

檔案目錄表 FDT 及其結構

用format命令對磁碟 或邏輯盤 進行格式化的時候,就已經為整個硬碟建立了乙個根目錄fdt。在根目錄下,使用者可以用dos命令 md 再建立不同的各個子目錄,以及子目錄下的子目錄。根目錄以及各級子目錄都有自己的fdt。在具體操作中,系統規定用字母c z代表邏輯碟符,所以dos簡單地用 碟符 表示在...

檔案分配表 FAT 及其結構

檔案分配表 fat 是檔案管理系統用來給每個檔案分配磁碟物理空間的 它告訴作業系統,檔案存放在磁碟的什麼地方。1.fat表的大小及位置 fat在磁碟上是安排在緊接dos引導扇區 dbr 之後的。在fat16系統中,它總是從dos的邏輯1扇區開始。在磁碟上共有fat表的兩個拷貝 乙個是基本fat表,另...