⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 硬盘fat文件系统原理的详细分析_存储在线dostor_com.htm

📁 c51读写SD卡原代码,c51编写,串口接收
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                  src="硬盘FAT文件系统原理的详细分析_存储在线Dostor_com_files/1708.gif" 
                  border=0></P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 说明:</STRONG></P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(1)、这是FAT32短文件格式目录项的意义。其中文件名、扩展名、时间、日期的算法和FAT16时相同的。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(2)、由于FAT32可寻址的簇号到了32位二进制数。所以系统在记录文件(文件夹)开始簇地址的时候也需要32位来记录,FAT32启用目录项偏移0x12~0x13来表示起始簇号的高16位。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(3)、文件长度依然用4个字节表示,这说明FAT32依然只支持小于4GB的文件(目录),超过4GB的文件(目录),系统会截断处理。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>FAT32的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>当创建一个长文件名文件时,系统会自动加上对应的短文件名,其一般有的原则:</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(1)、取长文件名的前6个字符加上"~1"形成短文件名,扩展名不变。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(2)、如果已存在这个文件名,则符号"~"后的数字递增,直到5。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(3)、如果文件名中"~"后面的数字达到5,则短文件名只使用长文件名的前两个字母。通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀"~1"直到最后(如果有必要,或是其他数字以避免重复的文件名)。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>(4)、如果存在老OS或程序无法读取的字符,换以"_"</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>长文件名的实现有赖于目录项偏移为0xB的属性字节,当此字节的属性为:只读、隐藏、系统、卷标,即其值为0FH时,DOS和WIN32会认为其不合法而忽略其存在。这正是长文件名存在的依据。将目录项的0xB置为0F,其他就任由系统定义了,Windows9x或Windows<I></I>&nbsp;2000、XP通常支持不超过255个字符的长文件名。系统将长文件名以13个字符为单位进行切割,每一组占据一个目录项。所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>长文件名中的字符采用unicode形式编码(一个巨大的进步哦),每个字符占据2字节的空间。其目录项定义如表15。</P>
                  <P align=center><IMG alt="" 
                  src="硬盘FAT文件系统原理的详细分析_存储在线Dostor_com_files/1709.gif" 
                  border=0></P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>系统在存储长文件名时,总是先按倒序填充长文件名目录项,然后紧跟其对应的短文件名。从表15可以看出,长文件名中并不存储对应文件的文件开始簇、文件大小、各种时间和日期属性。文件的这些属性还是存放在短文件名目录项中,一个长文件名总是和其相应的短文件名一一对应,短文件名没有了长文件名还可以读,但长文件名如果没有对应的短文件名,不管什么系统都将忽略其存在。所以短文件名是至关重要的。在不支持长文件名的环境中对短文件名中的文件名和扩展名字段作更改(包括删除,因为删除是对首字符改写E5H),都会使长文件名形同虚设。长文件名和短文件名之间的联系光靠他们之间的位置关系维系显然远远不够。其实,长文件名的0xD字节的校验和起很重要的作用,此校验和是用短文件名的11个字符通过一种运算方式来得到的。系统根据相应的算法来确定相应的长文件名和短文件名是否匹配。这个算法不太容易用公式说明,我们用一段c程序来加以说明。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>假设文件名11个字符组成字符串shortname[],校验和用chknum表示。得到过程如下:</P>
                  <P><I></I><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>int<I></I>&nbsp;i,j,chknum=0;<BR><I></I><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>for<I></I>&nbsp;(i=11;<I></I>&nbsp;i&gt;0;<I></I>&nbsp;i--)<BR><I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;<I></I>&nbsp;chksum<I></I>&nbsp;=<I></I>&nbsp;((chksum<I></I>&nbsp;&amp;<I></I>&nbsp;1)<I></I>&nbsp;?<I></I>&nbsp;0x80<I></I>&nbsp;:<I></I>&nbsp;0)<I></I>&nbsp;+<I></I>&nbsp;(chksum<I></I>&nbsp;&gt;&gt;<I></I>&nbsp;1)<I></I>&nbsp;+<I></I>&nbsp;shortname[j++];</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </STRONG>如果通过短文件名计算出来的校验和与长文件名中的0xD偏移处数据不相等。系统无论如何都不会将它们配对的。</P>
                  <P><STRONG>&nbsp;&nbsp;&nbsp; 
                  </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%">&nbsp;</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 + -