我知道/在Linux中是非法的,以下内容在Windows中是非法的
(我想)*"/[]:|,
我还缺什么
然而,我需要一份全面的指南,而且要考虑到
双字节字符。链接到外部资源对我来说很好
我需要首先在文件系统上创建一个目录,使用一个可能
包含禁止使用的字符,因此我计划将这些字符替换为
强调。然后我需要将这个目录及其内容写入一个zip文件
(使用Java),所以关于zip目录名称的任何其他建议
将不胜感激
让我们保持简单,首先回答问题
-
禁止打印的ASCII字符为:
-
Linux/Unix:
/(正斜杠) -
窗口:
<;(少于) &燃气轮机;(大于) :(冒号-有时有效,但实际上是NTFS备用数据流) &引用;(双引号) /(正斜杠) \(反斜杠) |(垂直杆或管道) ? (问号) *(星号)
-
-
不可打印字符
如果您的数据来自允许使用不可打印字符的源,那么还有更多需要检查的内容
-
Linux/Unix:
0(空字节) -
窗口:
0-31(ASCII控制字符)
注意:虽然在Linux/Unix文件系统下创建文件名中包含控制字符是合法的,但用户处理此类文件可能是一场噩梦。
-
-
保留文件名
保留以下文件名:
-
窗口:
CON、PRN、AUX、NUL COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9 LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9(单独使用或使用任意文件扩展名,例如,
LPT1.txt)
-
-
其他规则
-
窗口:
文件名不能以空格或点结尾
-
马科斯:
您没有要求它,只是以防万一:根据上下文,不允许使用冒号
:和正斜杠/(例如,Finder支持斜杠,terminal支持冒号)。详情请参阅https://superuser.com/questions/326103/what-are-invalid-characters-for-a-file-name-under-os-x
-