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