主流的操作系统都有文件的概述,文件存放数据的最根本单位。为了访问,每个文件都有唯一一个文件名用于标记文件。在程序设计,我们经常有创建文件的操作。在创建文件时,需要给新创建的文件起一个名子,这时候要特别小心,如果你的文件名没起好,以后一定会带来新的坑。
以下是笔者根据多年的经验,总结出来的文件名的禁用字符:
注意:在windows资源浏览器中1-10是无法直接创建的,但是在不同的环境却是可以的。比如 :
在Linux中直接就可以创建。当在多平台上交互时就会出现问题。
序号 | 内容 | 说明 |
---|---|---|
1 | / | Linux的路径分隔符,使用后会导致路径错误。 |
2 | \ | Windows的路径分隔符,使用后会导致路径错误。 |
3 | : | 一些编译语言,如java会用它作用文件间的分隔符。 |
4 | ? | 在很多控制台命令中,会当成通配符使用。 |
5 | * | 在很多控制台命令中,会当成通配符使用。 |
6 | | | 一些语言中被当成分隔符使用,如Markdown的制表符。 |
7 | " | 大多数语言中会被当成字符串的开始和结束符,必需转义使用。 |
8 | ' | 一些语言,如Python中,会作为字符串开始和结束符使用。 |
9 | < | 在HTML或XML中标签开始的标记。 |
10 | > | 在HTML或XML中的标签结束标记。 |
11 | 空格在DOS中,会被当成分隔符使用,必需加引号才可正常工作。 | |
12 | $ | 在很多环境中会被当成变量开始符号,如Shell。 |
推荐使用的安全非字母和数字符号。
序号 | 内容 | 说明 |
---|---|---|
1 | _ | 下划线任何语言中都可以使用的安全字符。 |
2 | @ | 因邮件地址而出名,可以安全使用(注意不要和自己的邮件地址冲突) |
3 | + or - | 这两个符号虽然也做为运算符,但是作为文件名是没有任何问题的。 |
4 | . | 安全,虽然在 windows 中作为后缀的分隔附,但是不影响正常使用。 |