文件分配系统中的文件名生成方法及生成装置制造方法及图纸

技术编号:2837624 阅读:274 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种文件分配系统中的文件名生成方法和装置,其中该方法包括:步骤31,按照文件分配系统标准,采用Unicode编码生成长文件名;步骤32,判断生成的文件名是否超过8个字符,如果是,进入步骤33,否则进入步骤34;步骤33,从长文件名的Unicode编码中选取部分Unicode编码,进行兼容预处理后作为短文件名的字符部分,并确定短文件名数字部分后,生成对应的短文件名的name字段;步骤34,直接将长文件名的Unicode编码作为短文件名name字段的内容,生成对应的短文件名。本发明专利技术的方法和装置节省了一套编码,减少了系统的资源开销。

【技术实现步骤摘要】

本专利技术涉及FAT(File Allocation Table,文件分配表)系统,特别是文件分配系统中的文件名生成方法及生成装置
技术介绍
FAT文件系统是微软定义的一种管理磁盘数据空间的文件系统,通过FAT表来管理整个磁盘空间,目前包括FAT12、FAT16和FAT32这3种文件系统,来满足不同存储空间范围的空间管理,FAT12、FAT16和FAT32这3种文件系统中FAT表中的基本单位分别为12个bit,16个bit或32个bit。在FAT文件系统中,定义了一个根目录区(Root Directory Region),用于存储根目录下的数据项。在FAT文件系统中,根目录区的基本存储单位为条目(entry),其结构如图1所示,包括以下字段Name(文件或目录的名字)、Ext(扩展名)、Attr(属性)、Case、Time_ms(时间)、Create_time(创建时间)、Create_date(创建日期)、Accessdate(最近一次访问日期)、Start cluster HI(文件或目录对应数据区的起始簇的高位)、Modify time(最近一次修改时间)、Modify date(最近一次修改日期)、Startcluster LO(文件或目录对应数据区的起始簇的低位)及File size(文件大小)。每一个文件都对应一个entry项,一个entry项占32个byte,根目录区就是所有entry项的罗列,如果entry到了结束,即没有下一个有效的entry了,FAT通过将entry的byte0置零来表示entry的结束。从目录区的entry结构可发现,传统的FAT在文件、目录名字的长度上是有限制的,名字为8个字符,扩展名为3个字符,即常说的8.3命名规则。在本专利技术中为方便描述,将8.3命名规则对应的文件名命名为短文件名。FAT为了实现对名字超过8个字符的文件名的支持,通过扩展了entry的定义来支持,在本专利技术中,为方便描述,将其命名为长文件名。FAT通过在常规文件entry的前面依次设置扩展entry项来存储长文件名,扩展entry如图2所示。短文件名的构成如下“字符部分”+“~”+“数字部分”+“.”+“后缀部分”短文件名通常是长文件名的“前几个字符”+“~”+“数字”+“.”+“后缀部分”构成,如“The quick brown fox.exe”对应的短文件名为“Thequi~1.fox”,如果又有一个名称类似的长文件名,如“The quick brownfoxl.exe”,则相应的短文件名为“Thequi~2.fox”。上述的文件名处理方案中,长文件名采用Unicode编码,而短文件名采用当前系统编码,如中文平台的GB码,韩文编码等。这样就涉及Unicode编码和本地编码两套编码,对于某些存储空间有限的系统来讲,多套编码必然增加了存储的压力,增加了开销。
技术实现思路
本专利技术的目的是提供一种文件分配系统中的文件名生成方法及生成装置,减少编码的数量,进而减少资源开销。为了实现上述目的,本专利技术提供了一种文件分配系统中的文件名生成方法,其中,包括步骤31,按照文件分配系统标准,采用Unicode编码生成长文件名;步骤32,判断生成的文件名是否超过8个字符,如果是,进入步骤33,否则进入步骤34;步骤33,从长文件名的Unicode编码中选取部分Unicode编码,进行兼容预处理后作为短文件名的字符部分,并确定短文件名数字部分后,生成对应的短文件名的name字段;步骤34,直接将长文件名的Unicode编码作为短文件名name字段的内容,生成对应的短文件名。上述的方法,其中,该兼容预处理操作具体为将选取的部分Unicode编码中的0字符转换为0X30。上述的方法,其中,所述步骤33中选取的部分Unicode编码为长文件名Unicode编码中最前面的一个或多个。上述的方法,其中,所述步骤33中确定短文件名数字部分具体包括 步骤A,选择一数字,与选择的Unicode编码结合生成一临时短文件名;步骤B,通过遍历当前目录下的所有文件的文件名,判断该临时短文件名是否与当前目录下的文件的文件名相同,如果是,返回步骤A,否则进入步骤C;步骤C,将步骤A中选择的数字作为短文件名的数字部分。上述的方法,其中,所述步骤33中确定短文件名数字部分具体为获取当前目录下现有文件名的存储信息,并利用该存储信息确定一第一数值作为短文件名的数字部分,该确定的第一数值与当前目录下已有短文件名的数字部分的数值相比为唯一。上述的方法,其中,所述当前目录下现有文件名的存储信息为创建新文件的当前目录下现有文件名已占用的条目数目,所述第一数值为创建新文件的当前目录下现有文件名已占用的条目数目加1后的结果。上述的方法,其中,所述当前目录下现有文件名的存储信息为创建新文件的当前目录下现有文件名的数目,所述第一数值为创建新文件的当前目录下现有文件名的数目加1后的结果。上述的方法,其中,所述当前目录下现有文件名的存储信息为当前扇区ID及该扇区已使用条目数目,所述第一数值为以当前扇区的ID作为开头,结合当前扇区已使用的条目数目所形成的数字加1后的数值,所述当前扇区已使用的条目数目为2位,不足两位则补0。为了更好的实现上述目的,本专利技术还提供了一种文件分配系统中的文件名生成装置,其中,包括长文件名生成模块,用于按照文件分配系统标准,采用Unicode编码生成长文件名;判断模块,用于判断生成的文件名是否超过8个字符,如果是,由第一短文件名生成模块进行处理,否则由第二短文件名生成模块进行处理;第一短文件名生成模块,用于从长文件名的Unicode编码中选取部分Unicode编码,进行兼容预处理后作为短文件名的字符部分,并确定短文件名数字部分后,生成对应的短文件名的name字段;第二短文件名生成模块,用于直接将长文件名的Unicode编码作为短文件名name字段的内容,生成对应的短文件名。上述的装置,其中,该兼容预处理操作具体为将选取的部分Unicode编码中的0字符转换为0X30。上述的装置,其中,所述第一短文件名生成模块选取的部分Unicode编码为长文件名Unicode编码中最前面的一个或多个。上述的装置,其中,所述短文件名数字部分为创建新文件的当前目录下现有文件名已占用的条目数目加1后的结果。上述的装置,其中,所述短文件名数字部分为创建新文件的当前目录下现有文件名的数目加1后的结果。上述的装置,其中,所述短文件名数字部分为以当前扇区的ID作为开头,结合当前扇区已使用的条目数目所形成的数字加1后的数值,所述当前扇区已使用的条目数目为2位,不足两位则补0。本专利技术的方法和装置,通过将短文件名中的字符采用Unicode编码来处理,节省了一套编码,因此减少了系统的资源开销;同时,对于短文件名中的数值,本专利技术进一步结合当前目录下现有文件名的存储信息,并利用该存储信息为新文件的短文件名确定一数值,该确定的数值与当前目录下已有短文件名的数字部分的数值相比为唯一,加快了文件名的生成速度。附图说明图1为根目录区中条目的结构示意图;图2为扩展条目的结构示意图;图3为本专利技术的方法的流程示意图;图4为本专利技术的装置的结构示意图;具体实施方式本专利技术的文件分配系统中的文件名本文档来自技高网
...

【技术保护点】
一种文件分配系统中的文件名生成方法,其特征在于,包括:步骤31,按照文件分配系统标准,采用Unicode编码生成长文件名;步骤32,判断生成的文件名是否超过8个字符,如果是,进入步骤33,否则进入步骤34;步骤33, 从长文件名的Unicode编码中选取部分Unicode编码,进行兼容预处理后作为短文件名的字符部分,并确定短文件名数字部分后,生成对应的短文件名的name字段;步骤34,直接将长文件名的Unicode编码作为短文件名name字段的内 容,生成对应的短文件名。

【技术特征摘要】
1.一种文件分配系统中的文件名生成方法,其特征在于,包括步骤31,按照文件分配系统标准,采用Unicode编码生成长文件名;步骤32,判断生成的文件名是否超过8个字符,如果是,进入步骤33,否则进入步骤34;步骤33,从长文件名的Unicode编码中选取部分Unicode编码,进行兼容预处理后作为短文件名的字符部分,并确定短文件名数字部分后,生成对应的短文件名的name字段;步骤34,直接将长文件名的Unicode编码作为短文件名name字段的内容,生成对应的短文件名。2.根据权利要求1所述的方法,其特征在于,该兼容预处理操作具体为将选取的部分Unicode编码中的0字符转换为0X30。3.根据权利要求2所述的方法,其特征在于,所述步骤33中选取的部分Unicode编码为长文件名Unicode编码中最前面的一个或多个。4.根据权利要求1或2所述的方法,其特征在于,所述步骤33中确定短文件名数字部分具体包括步骤A,选择一数字,与选择的Unicode编码结合生成一临时短文件名;步骤B,通过遍历当前目录下的所有文件的文件名,判断临时短文件名是否与当前目录下的文件的文件名相同,如果是,返回步骤A,否则进入步骤C;步骤C,将步骤A中选择的数字作为短文件名的数字部分。5.根据权利要求1或2所述的方法,其特征在于,所述步骤33中确定短文件名数字部分具体为获取当前目录下现有文件名的存储信息,并利用该存储信息确定一第一数值作为短文件名的数字部分,该确定的第一数值与当前目录下已有短文件名的数字部分的数值相比为唯一。6.根据权利要求5所述的方法,其特征在于,所述当前目录下现有文件名的存储信息为创建新文件的当前目录下现有文件名已占用的条目数目,所述第一数值为创建新文件的当前目录下现有文件名已占用的条目数目加1后的结果。7.根据权利要求5所述的方法,其特征在于,所述当前目录下现有文件名的存储信息为创建新文件的当前目录下现有...

【专利技术属性】
技术研发人员:孙丰强
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1