DOS短文件名规则

编程入门 行业动态 更新时间:2024-10-10 17:26:37

DOS短<a href=https://www.elefans.com/category/jswz/34/1769975.html style=文件名规则"/>

DOS短文件名规则

当创建一个长文件名文件时,系统会自动加上对应的短文件名,其一般有的原则:
(1)、取长文件名的前 6 个字符加上”~1”形成短文件名,扩展名不变。
(2)、如果已存在这个文件名,则符号”~”后的数字递增,直到 5。
(3)、如果文件名中”~”后面的数字达到 5,则短文件名只使用长文件名的前两个字母。通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,然后加后缀”~1”直到最后(如果有必要,或是其他数字以避免重复的文件名)。
(4)、如果存在老 OS 或程序无法读取的字符,换以”_”

长文件名如何转换为短文件名

长短文件名如何配对与文件系统目录结构有关,以FAT32为例,长文件名的0xD字节的校验和起很重要的作用。校验和是用短文件名的11 个字符通过一种运算方式来得到的,系统根据相应的算法来确定相应的长文件名和短文件名是否匹配。这个算法不太容易用公式说明,我们用一段c程序来加以说明。假设文件名11个字符组成字符串shortname[],校验和用chknum表示。得到过程如下:

int i,j,chknum=0;
for (i=11; i>0; i--)
chksum = ((chksum & 1) ? 0x80 : 0) + (chksum >> 1) + shortname[j++];

如果通过短文件名计算出来的校验和与长文件名中的0xD偏移处数据不相等。系统无论如何都不会将它们配对的。

长短文件名配对详细解释点我



如何查看磁盘文件短文件名

以C盘为例,DOS命令行输入”dir/x”,结果如下图(最右列是长文件名,左侧是对应的短文件名):


但是我在DOS内查看我的D盘时发现无法显示对应的短文件名,如下图:

后来发现是因为我的D盘关闭了8.3兼容特性,也就是新建一个长文件名文件,并不会自动创建对应的短文件名,所以”dir/x”命令无法显示出短文件名。

Tips: DOS窗口下输入如下命令行可以查看修改8.3兼容特性:
fsutil behavior query disable8dot3 检查NTFS驱动是否开启8.3兼容特性
fsutil behavior set disable8dot3 1 关闭8.3兼容特性
fsutil behavior set disable8dot3 0 开启8.3兼容特性
fsutil file setshortname <长文件名> <8.3短文件名> 手工指定一个8.3短名称

开启8.3兼容特性后(新建了一个名为”asdadawdasadasdad”的文件夹)
发现新建的文件夹存在短文件名,之前的文件仍没有短文件名。


参考文献:

Windows系统下的文件长名和文件短名

关于CMD/DOS中的短文件名规则

FAT32系统中长文件名的存储

更多推荐

DOS短文件名规则

本文发布于:2024-02-27 01:18:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704677.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件名   规则   DOS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!