在fat32檔案系統下,分割槽根目錄下的檔案及資料夾的目錄項存放在根目錄區中,分割槽子目錄下的檔案及檔案
夾的目錄項存放在子目錄區中,根目錄和子目錄區都在資料區中。
fat32與fat16目錄項一樣分為四類
短檔名目錄項
長檔名目錄項
「.」目錄項和「..」目錄項
卷標目錄項
fat32與fat16只有短檔案有區別,其他三類完全一樣,這裡只是講述fat32的短檔名
fat32
短檔名目錄項的含義
位元組偏移
字段長度
字段內容及含義
0x00
8
主檔名
0x08
3
檔案的副檔名
0x0b
1
檔案屬性
00000000(讀/
寫)0x00
00000001
(唯讀)
0x01
00000010
(隱藏)
0x20
00000100
(系統)
0x40
00001000
(卷標)
0x08
00010000
(子目錄)
0x10
00100000
(存檔)
0x20
0x0c
1
未用0x0d
1
檔案建立時間精確到
10ms
的值0x0e
2
檔案建立時間,包括時,分,秒
0x10
2
檔案建立日期,包括年,月,日
0x12
2
檔案最近訪問日期,包括年,月,日
0x14
2
檔案起始簇號的最高位
0x16
2
檔案修改時間,包括時,分,秒
0x18
2
檔案修改日期,包括年,月,日
0x1a
2
檔案的起始簇號的低位
0x1c
4
檔案大小(以位元組為單位)
引數詳細分析
(1)主檔名
檔名用不完8個位元組,後面用空格(0x20)填充。
另外該位置的第乙個位元組也用來表示目錄項的分配狀態,當這個位元組為 0x00時,表示該目錄從未用過,當這個
位元組是0xe5
時,表示該目錄項曾經使用過,但目前已經被刪除。
(2)副檔名
沒有副檔名的用空格填充
(3)檔案屬性
檔案的各種屬性,表示的方法是按二進位制位定義,最高兩位保留未用,
(1) 未用
(5)檔案建立時間精確到10ms的值
檔案在建立時的時間值中精確到10ms的值用該位元組表示。例如:86h,十進位制為134,所以檔案建立的時間為
1340ms,即1.34s.
(6)檔案建立時間
a:0-4位,這5位記錄秒的值,單位是2s,也就是把這四位的值乘以
2,才是秒的值,其取值範圍為0-29.
b:5-10位,這6位記錄分的值,其取值範圍為0-59.
c:11-15位,這5位記錄時的值,其取值範圍為0-23
計算出來的值再加上1340ms。才是檔案最終的建立時間。.
(7)檔案建立日期
a:0-4位,這5位記錄日的值,其取值範圍為0-31
b:5-8位,這4位記錄月的值,其取值範圍為0-12.
c:9-15位,這7位記錄年的值,其取值相對於2023年開始計數的,其值必須加上1980。
(8)檔案最近訪問日期
同檔案建立日期演算法一樣
(1) 檔案起始簇號的高位
是指檔案的內容所在的第乙個簇號
(2) 檔案修改時間略
(3) 檔案修改日期略
(12)檔案起始簇號低位
是指檔案的內容所在的第乙個簇號
(13)檔案大小以位元組大小為單位小端儲存
長檔名目錄項
為了相容dos與winddows 3.x在winddows 95以上的系統中,超過8.3格式的檔案或目錄實際儲存著兩
個名字,乙個短檔名和乙個長檔名。當建立乙個長檔名時,其對應的短檔名的處理有以下三個原則:
a:系統取長檔名的前6個字元加上「~1」,形成短檔名,其副檔名保持不變
b:如果已經存在這個名字的檔案,數字自動加1,「~2」
c:如果有dos與winddows 3.x的非法字元,以「_」替代。
長檔名儲存時,其屬性值為 ofh,能夠儲存13個字元,如果檔名很長,乙個長檔名需要多個目錄項,
這些目錄是倒序排放在其短檔名的前面。
fat32長檔名目錄項的含義
位元組偏移
字段長度
字段內容及含義
0x001
序列號
0x0110
檔名的第1-5個unicode碼字元
0x0b1
屬性標誌 ofh固定值
0x0c1
保留未用
0x0d1
短檔名檢驗和
0x0e12
檔名的第6-11個unicode碼字元
0x1a2
始終為0
0x1c2
檔名的第12-13個unicode碼字元
特殊說明
(4) 序列號
0-4位描述了長檔名目錄項的順序號
6位若為1,則表明是目錄項的最後一項
如果檔案被刪除,該位元組會改為「e5」。
(5) 檔名字元
如果檔名已經記錄完,但該引數的空間中還有未用的位元組,就會在檔名最後乙個字元填充兩個00h,隨後
未用的填充ffh
(6) 短檔名檢驗和
長檔名目錄項通過這個檢驗和將其與短檔名目錄項關聯起來。檢驗和是通過短檔名計算而來的,同一長
檔名的檢驗和必須一致。
校驗和的計算方法是依次將短檔名的各個字元對應的二進位制相加,在每一步相加之前先將二進位制的值依
次向右移動一位,最右邊的位迴圈移動到最左邊,然後再加上下乙個字元所對應的二進位制值,直到把最後乙個字
符加完。
「.」目錄項(當前目錄)和「..」目錄項(上級目錄)
在子目錄所在的檔案目錄項區域中,總有兩個特殊的目錄,「.」目錄項和「..」目錄項可以用dos命令的dir查
看到。
說明 a:「.」目錄項所描述的起始簇號,是子目錄本身所在簇號,
c:這兩個目錄都大小被設定0,同其他的資料夾目錄項一樣。
系統利用「.」目錄項(當前目錄)和「..」目錄項實現目錄之間的雙向聯絡,從而把整個檔案系統聯絡在一起。
卷標目錄項
卷標可以被隨時修改,存放在fdt中,
a:卷標屬於短檔名,最大支援11個字元。
b:不記錄起始簇號與大小
c:不記錄建立時間和最後訪問時間,只記錄修改時間
fat32檔案系統對於根目錄下檔案和管理,統一在資料區中的根目錄為這些檔案建立目錄項,並由fat
表為檔案的內容分配簇存放資料。而根目錄的首簇由格式化程式決定,並存放在dbr的bpb中。如果根目錄
下的目錄項數目過多,這些檔案的目錄項在根目錄區的首簇存放不下,fat表就會為根目錄分配新的簇來存
放根目錄下檔案及資料夾的目錄項。
第1步:定位dbr
第2步:定位根目錄首簇
第3步:定位目錄項
第4步:定位fat
第5步:定位資料區
第1步:定位dbr
第2步:定位根目錄首簇
第3步:定位子目錄項
第4步:定位子目錄簇
第5步:定位子目錄檔案
第6步:定位fat
第7步:定位資料區
FAT32檔案系統
windows95 osr2和windows 98開始支援fat32檔案系統,它是對早期dos的fat16檔案系統的增強,由於檔案系統的核心 檔案分配表fat由16位擴充為32位,所以稱為fat32檔案系統。在一邏輯盤 硬碟的一分割槽 超過 512 兆位元組時使用這種格式,會更高效地儲存資料,減少硬...
解析Fat32檔案系統
1.第一分區的起始扇區 2.第乙個檔案檔案配置表 fat 的位置 3.資料區域的位置 4.檔案 file1.txt 所在的簇 1 首先,用hxd開啟所要解析的fat32的檔案 2 選擇所要分析的檔案,開啟後,在起始的sector0,也就是0扇區我們就會看到該系統的主引導,在結束標誌的55aa之前的6...
NTFS與FAT32檔案系統
磁碟 包括行動硬碟 u盤 軟盤等 在格式化時都必須指定檔案系統,目前常用的檔案系統有ntfs和fat32。一 ntfs 1 概述 ntfs,即nt檔案系統。是微軟在windows nt作業系統上使用的一種檔案系統。ntfs不斷在改進,現在主流的版本是v3.1,來自windows xp。由於windo...