Windows转换成短文件名规则

很多时候,我们会遇到文件夹包含空格的情况,如何去掉这令人讨厌的空格呢?以下内容翻译自微软官网:

Windows支持的长文件名最多为 255 个字符。Windows还以8.3格式创建与MS-DOS兼容的(短)文件名,以允许基于MS-DOS或16位Windows的程序访问这些文件。

Windows从长文件名创建短文件名遵循以下方式:
1) Windows删除文件名中所有的非法字符和空格,非法的字符包括. " / \ [ ] : ; = ,
2) 短文件名仅可包含一个句号(.),如果采用了最后的句号之后文件名合法并且没有空格,然后Windows会从文件名中移除其它句号。例如,Windows创建短文件名Thisis~1.txt从长文件名This is a really long filename.123.456.789.txt
另外,Windows会忽略最后的句号(译者注:句号后面无其它字符)并使用前面一个句号。例如,Windows创建短文件名Thisis~1.789从长文件名This is a really long filename.123.456.789.
3) Windows截取文件名,如果必要的话,到6个字符并且添加一个波浪符(~)和一个数字。例如,创建唯一的文件名需要以”~1.”为结尾。重复的文件名以”~2,”,”~3,”结尾,以此类推
4) Windows截取文件的后缀名到3个字符或更少
5) Windows转换文件名中所有的字符为大写

需要注意的是,如果一个目录或文件名包含一个空格,但是小于8个字符,Windows仍然会创建一个短文件名。这种行为也许导致一些问题如果你尝试访问网络上的文件或目录。为了解决这种情况,替换成一个合法的字符例如下划线(_)。这样的话,Windows不会创建一个不同的短文件名。
例如,”Afile~1.doc”从”A file.doc”中创建,因为长文件名包含一个空格。不会从”A_file.doc”中创建一个短文件名因为文件名短于8个字符并且没有包含空格。
短文件名”Alongf~1.txt”从长文件名 “A long filename.txt”中创建,因为长文件名超过8个字符

原文链接:https://support.microsoft.com/en-us/help/142982/how-windows-generates-8-3-file-names-from-long-file-names

另外,附一个转换的demo给需要的童鞋

posted @ 2017-11-14 10:03 键下乾坤 阅读(...) 评论(...) 编辑 收藏