根据 MSDN 的说明,以下字符不能作为文件名的一部分:
使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集 (128-255) 中的字符,但不包括以下内容:
◦以下保留字符: • <(小于号) • >(大于号) • :(冒号) • "(双引号) • /(正斜杠) • \(反斜杠) • |(竖线或管道符号) • ?(问号) • *(星号)
在 .net 中提供了一个 API 来查找文件名中不允许出现的字符。
使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集 (128-255) 中的字符,但不包括以下内容:
◦以下保留字符: • <(小于号) • >(大于号) • :(冒号) • "(双引号) • /(正斜杠) • \(反斜杠) • |(竖线或管道符号) • ?(问号) • *(星号)
在 .net 中提供了一个 API 来查找文件名中不允许出现的字符。
char[] invalidFileChars = Path.GetInvalidFileNameChars();
备注
此方法返回的数组不能保证包含文件和目录名称中无效的完整字符集。无效字符集可以因文件系统而异。例如,在基于 Windows 的桌面平台上,无效路径字符可能包括 ASCII/Unicode 字符 1 到 31,以及引号("),小于号(<),大于号(>),管道(|),退格键(\b),空值(\0)和制表符(\t)。
但是在备注部分中提到,这取决于文件系统。
在 Windows XP 和 Windows 7 等基于 Windows 的操作系统中使用此 API 安全吗?