?? 硬盤fat文件系統原理的詳細分析_存儲在線dostor_com.htm
字號:
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/1708.gif"
border=0></P>
<P><STRONG> 說明:</STRONG></P>
<P><STRONG>
</STRONG>(1)、這是FAT32短文件格式目錄項的意義。其中文件名、擴展名、時間、日期的算法和FAT16時相同的。</P>
<P><STRONG>
</STRONG>(2)、由于FAT32可尋址的簇號到了32位二進制數。所以系統在記錄文件(文件夾)開始簇地址的時候也需要32位來記錄,FAT32啟用目錄項偏移0x12~0x13來表示起始簇號的高16位。</P>
<P><STRONG>
</STRONG>(3)、文件長度依然用4個字節表示,這說明FAT32依然只支持小于4GB的文件(目錄),超過4GB的文件(目錄),系統會截斷處理。</P>
<P><STRONG>
</STRONG>FAT32的一個重要的特點是完全支持長文件名。長文件名依然是記錄在目錄項中的。為了低版本的OS或程序能正確讀取長文件名文件,系統自動為所有長文件名文件創建了一個對應的短文件名,使對應數據既可以用長文件名尋址,也可以用短文件名尋址。不支持長文件名的OS或程序會忽略它認為不合法的長文件名字段,而支持長文件名的OS或程序則會以長文件名為顯式項來記錄和編輯,并隱藏起短文件名。</P>
<P><STRONG>
</STRONG>當創建一個長文件名文件時,系統會自動加上對應的短文件名,其一般有的原則:</P>
<P><STRONG>
</STRONG>(1)、取長文件名的前6個字符加上"~1"形成短文件名,擴展名不變。</P>
<P><STRONG>
</STRONG>(2)、如果已存在這個文件名,則符號"~"后的數字遞增,直到5。</P>
<P><STRONG>
</STRONG>(3)、如果文件名中"~"后面的數字達到5,則短文件名只使用長文件名的前兩個字母。通過數學操縱長文件名的剩余字母生成短文件名的后四個字母,然后加后綴"~1"直到最后(如果有必要,或是其他數字以避免重復的文件名)。</P>
<P><STRONG>
</STRONG>(4)、如果存在老OS或程序無法讀取的字符,換以"_"</P>
<P><STRONG>
</STRONG>長文件名的實現有賴于目錄項偏移為0xB的屬性字節,當此字節的屬性為:只讀、隱藏、系統、卷標,即其值為0FH時,DOS和WIN32會認為其不合法而忽略其存在。這正是長文件名存在的依據。將目錄項的0xB置為0F,其他就任由系統定義了,Windows9x或Windows<I></I> 2000、XP通常支持不超過255個字符的長文件名。系統將長文件名以13個字符為單位進行切割,每一組占據一個目錄項。所以可能一個文件需要多個目錄項,這時長文件名的各個目錄項按倒序排列在目錄表中,以防與其他文件名混淆。</P>
<P><STRONG>
</STRONG>長文件名中的字符采用unicode形式編碼(一個巨大的進步哦),每個字符占據2字節的空間。其目錄項定義如表15。</P>
<P align=center><IMG alt=""
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/1709.gif"
border=0></P>
<P><STRONG>
</STRONG>系統在存儲長文件名時,總是先按倒序填充長文件名目錄項,然后緊跟其對應的短文件名。從表15可以看出,長文件名中并不存儲對應文件的文件開始簇、文件大小、各種時間和日期屬性。文件的這些屬性還是存放在短文件名目錄項中,一個長文件名總是和其相應的短文件名一一對應,短文件名沒有了長文件名還可以讀,但長文件名如果沒有對應的短文件名,不管什么系統都將忽略其存在。所以短文件名是至關重要的。在不支持長文件名的環境中對短文件名中的文件名和擴展名字段作更改(包括刪除,因為刪除是對首字符改寫E5H),都會使長文件名形同虛設。長文件名和短文件名之間的聯系光靠他們之間的位置關系維系顯然遠遠不夠。其實,長文件名的0xD字節的校驗和起很重要的作用,此校驗和是用短文件名的11個字符通過一種運算方式來得到的。系統根據相應的算法來確定相應的長文件名和短文件名是否匹配。這個算法不太容易用公式說明,我們用一段c程序來加以說明。</P>
<P><STRONG>
</STRONG>假設文件名11個字符組成字符串shortname[],校驗和用chknum表示。得到過程如下:</P>
<P><I></I><STRONG>
</STRONG>int<I></I> i,j,chknum=0;<BR><I></I><STRONG>
</STRONG>for<I></I> (i=11;<I></I> i>0;<I></I> i--)<BR><I></I> <I></I> <I></I> <I></I> <I></I> <I></I> <I></I> <I></I> chksum<I></I> =<I></I> ((chksum<I></I> &<I></I> 1)<I></I> ?<I></I> 0x80<I></I> :<I></I> 0)<I></I> +<I></I> (chksum<I></I> >><I></I> 1)<I></I> +<I></I> shortname[j++];</P>
<P><STRONG>
</STRONG>如果通過短文件名計算出來的校驗和與長文件名中的0xD偏移處數據不相等。系統無論如何都不會將它們配對的。</P>
<P><STRONG>
</STRONG>依據長文件名和短文件名對目錄項的定義,加上對簇的編號和鏈接,FAT32上數據的讀取便游刃有余了。</P>
<P></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width=750 bgColor=#eff3f7>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center
border=0>
<TBODY>
<TR>
<TD vAlign=center align=right bgColor=#b9deff height=28>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=right width="98%"><IMG height=14
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/pinglun.gif"
width=16><A class=N_POS
href="http://www.dostor.com/iRelease/jsp/article/ArticleRemark.jsp?articleid=10253">查看評論</A> <IMG
height=14
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/dayin.gif"
width=16><A class=N_POS
href="javascript:self.print()">打印</A> <IMG height=14
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/jigei.gif"
width=16><A class=N_POS
href="http://www.dostor.com/iRelease/jsp/article/SendArticle.jsp?articleid=10253">寄給朋友</A> <IMG
height=14
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/guanbi.gif"
width=16><A class=N_POS onclick=window.close();
href="http://www.dostor.com/#">關閉窗口</A></TD>
<TD
width="2%"> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=2 width="90%" align=center
border=0>
<TBODY>
<TR>
<TD class=BLUEMENU
background=硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/ud_bj3.gif
height=23><IMG height=1
src="硬盤FAT文件系統原理的詳細分析_存儲在線Dostor_com_files/dot.gif" width=1>
【相關文章】</TD></TR>
<TR>
<TD class=list01><A
href="http://www.dostor.com/news/stor/2004-08-19/0001117512.shtml"><FONT
color=#001d96>希捷硬盤五年質保 消費者是否可以真正獲益?</FONT></A>(2004-08-19
18:04:22 )<BR><A
href="http://www.dostor.com/news/stor/2004-08-19/0001117487.shtml"><FONT
color=#001d96>IBM eServer xSeries
1U服務器采用希捷Savvio硬盤</FONT></A>(2004-08-19 10:58:03 )<BR><A
href="http://www.dostor.com/news/it/2004-08-06/0001317018.shtml"><FONT
color=#001d96>消費類電子產品需求影響硬盤市場 看硬盤MP3趨勢化</FONT></A>(2004-08-06
15:54:46 )<BR><A
href="http://www.dostor.com/news/stor/2004-08-04/0001116887.shtml"><FONT
color=#001d96>希捷五年質保策略面臨困境 利益沖突遭經銷商抵制</FONT></A>(2004-08-04
18:01:10 )<BR><A
href="http://www.dostor.com/news/stor/2004-08-02/0001116668.shtml"><FONT
color=#001d96>消費電子市場膨脹 HGST—希捷聯合研發手機硬盤</FONT></A>(2004-08-02
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -