[发明专利]短文件名文件系统中实现支持长文件名的系统结构及方法无效
申请号: | 200810042731.7 | 申请日: | 2008-09-10 |
公开(公告)号: | CN101673261A | 公开(公告)日: | 2010-03-17 |
发明(设计)人: | 李振乾 | 申请(专利权)人: | 上海摩波彼克半导体有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海智信专利代理有限公司 | 代理人: | 王 洁;郑 暄 |
地址: | 201204上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件名 文件系统 实现 支持 系统 结构 方法 | ||
技术领域
本发明涉及计算机文件系统领域,特别涉及计算机文件系统文件管理技术领域,具体是指一种短文件名文件系统中实现支持长文件名的系统结构及方法。
背景技术
FAT16文件系统中,当磁盘被格式化后,根目录的大小和位置就已经确定下来了:位置紧跟FAT2(即第二个FAT表)之后,大小通常为32个扇区。
FAT16文件系统把目录(文件夹)当作一个特殊的文件来处理,FAT16分区中所有的文件夹(目录)文件,可以看作是一个存放其他文件(文件夹)入口参数的数据表,因此目录文件也就是一个简单的二维表文件。其具体存储方式是系统以32个字节为单位分配给一个FAT16目录项,这32个字节以确定的偏移来定义本目录下的一个文件(或文件夹)的属性。这32个字节的具体定义见下表1所示。
表1
其中表1的前三项详细解释如下:
(1)对于短文件名,系统将文件名分成两部分进行存储,即主文件名+扩展名。0x0~0x7字节记录文件的主文件名,0x8~0xA记录文件的扩展名,取文件名中的ASCII码值。不记录主文件名与扩展名之间的“.”,主文件名不足8个字符以空白符(20H)填充,扩展名不足3个字符同样以空白符(20H)填充。
(2)0xB的属性字段:可以看作系统将0xB的一个字节分成8位,用其中的一位代表某种属性的有或无。这样,一个字节中的8位每位取不同的值就能反映各个属性的不同取值了。如00000101就表示这是个文件,属性是只读、系统。
以上是FAT16对短文件名的支持实现方式。
目前很多操作系统中FAT16分区也可以支持不超过255个字符的长文件名,其实现方式如下:长文件名依然是记录在目录项中的。为了低版本的操作系统或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。
长文件名的实现有赖于目录项偏移为0xB的属性字节,当此字节的属性为:只读、隐藏、系统、卷标,即其值为0FH时,不支持长文件名的操作系统会认为其不合法而忽略其存在。这正是长文件名存在的依据。将目录项的0xB置为0F,其他就任由系统定义了。操作系统一般支持不超过255个字符的长文件名。操作系统将长文件名以13个字符为单位进行切割,每一组占据一个目录项,所以一个长文件名目录需要多个目录项。长文件名中的字符采用unicode形式编码,每个字符占据2字节的空间。其目录项定义如下表2所示。
表2
前面已经提到,根目录区大小为32个扇区,每个扇区一般为512个字节。而每一个目录项大小为32个字节,因此如果全部存放短文件名文件或者文件夹,根目录区一共可以存放(32扇区×512字节每扇区)÷(32字节每目录项)=512个文件或者文件夹。如果要实现对长文件名的支持,每个255字符的长文件名(长文件夹名)会占用最多(255字符)÷(13个字符每个表项)=20个表项,再加上与长文件名对应的一个短文件名项,一共要占用21个表项。因此极端情况下,一个FAT16文件系统的根目录下只能存放512÷21=24个长文件名表项。
因此按上述方法实现支持长文件名的FAT16文件系统开发中存在两个严重不足:
(1)根目录下保存的目录项数有限。
(2)操作系统进行长文件存储和读取时的算法复杂,驱动程序开发难度大,周期长。
而目前SD卡、MMC卡、mp3等设备的存储容量越来越大,根目录下需要存放的文件项数越来越多,长文件名的使用场合也越来越广。而FAT16作为较早出现且较容易使用的文件系统管理方式目前仍然广泛应用与手机、PDA、mp3等设备的操作系统中,因此如何更好更简单的在FAT16文件系统中实现对长文件名的支持也变得尤为重要。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够在短文件名文件系统中支持长文件名文件存取、方便快捷、系统结构简单、兼容性较好、工作性能稳定可靠、适用范围较为广泛的短文件名文件系统中实现支持长文件名的系统结构及方法。
为了实现上述的目的,本发明的短文件名文件系统中实现支持长文件名的系统结构及方法如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海摩波彼克半导体有限公司,未经上海摩波彼克半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810042731.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:石油焦细粉成球的方法
- 下一篇:一种氯化氢合成过程中游离氯在线检测方法