谁能详细告诉我为什么 Windows 不允许创建具有以下名称的文件/文件夹?
- 美联社
- 辅助
- 空值
- LP1 接口
- COM1
- 潜在驱动器号 - A: 到 Z:
- 其他字符(例如
<
(小于)、>
(大于)、:
(冒号)、"
(双引号)、/
(正斜杠)\
、(反斜杠)、|
(竖线)、?
(问号)、*
(星号)
答案1
MSDN 中关于允许内容的完整细节:
http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
使用句点将目录或文件名称中的基本文件名与扩展名分隔开。
使用反斜杠 () 分隔路径的各个部分。反斜杠将文件名与路径分隔开,并将路径中的一个目录名与另一个目录名分隔开。您不能在实际文件或目录的名称中使用反斜杠,因为它是将名称分隔成各个部分的保留字符。
根据需要使用反斜杠作为卷名的一部分,例如,通用命名约定 (UNC) 名称中的“C:\”在“C:\path\file”中或“\server\share\path\file”中。有关 UNC 名称的更多信息,请参阅最大路径长度限制部分。
不要假设区分大小写。例如,假设名称 OSCAR、Oscar 和 oscar 相同,即使某些文件系统(如 POSIX 兼容文件系统)可能认为它们不同。请注意,NTFS 支持区分大小写的 POSIX 语义,但这不是默认行为。有关更多信息,请参阅 CreateFile。
卷标识符(驱动器字母)同样不区分大小写。例如,“D:\”和“d:\”指的是同一个卷。
使用当前代码页中的任意字符作为名称,包括 Unicode 字符和扩展字符集 (128–255) 中的字符,但以下字符除外:
以下保留字符:
- <(小于)
(比...更棒)
- : (冒号)
- “(双引号)
- /(正斜杠)
- \(反斜杠)
- | (垂直条或管道)
- ?(问号)
- *(星号)
整数值零,有时称为 ASCII NUL 字符。
整数表示形式在 1 到 31 范围内的字符,但允许使用这些字符的备用流除外。有关文件流的更多信息,请参阅文件流。
目标文件系统不允许的任何其他字符。
使用句点作为路径中的目录组件来表示当前目录,例如“.\temp.txt”。有关更多信息,请参阅路径。
使用两个连续的句点 (..) 作为路径中的目录组件来表示当前目录的父目录,例如“..\temp.txt”。有关更多信息,请参阅路径。
请勿使用以下保留设备名称作为文件名:
CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8 和 LPT9。还应避免在这些名称后紧跟扩展名;例如,不建议使用 NUL.txt。有关更多信息,请参阅命名空间。
不要以空格或句点结尾文件或目录名称。虽然底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。不过,可以将句点指定为名称的第一个字符。例如“.temp”。
答案2
此外,名称末尾不能使用空格或句点。此外,文件不能具有以下保留设备名称:CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8 和 LPT9。请注意,在 Windows 中不区分大小写。
您可能还会发现来自的页面(来源)。