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