如何将Path.InvalidPathCharacters视为字符?

时间:2016-11-10 16:14:51

标签: c# .net path

我想输出一个人类可读列表的无效路径字符,这是.NET运行时所理解的。

我已经尝试过Linqpad和一个简单的Console.WriteLine(Path.GetInvalidPathChars)控制台应用程序,但两者都显示某些字符很难辨认。显然,这是预期的。

console output illegible

MSDN's documentation:

  

注意:某些字符可能无法在控制台上显示。

文档是否告诉我,我无法获得这些字符的人类可读版本?

2 个答案:

答案 0 :(得分:3)

某些字符没有可以在常规控制台中编写的任何可视表示形式。我会做这样的事情:

var chars = Path.GetInvalidPathChars().Select(x => (int)x);
foreach (char c in Path.GetInvalidPathChars())
{
    Console.WriteLine("(char)" + (int)c + ": " + c );
}

答案 1 :(得分:1)

是的,有些字符无效,但不可读。例如,空终止符\0没有可见的表示。有些字体会将这些字符呈现为问号框,有些字体有非常有趣的方式(不)显示它。

最重要的是,你必须用一些“人类可读”的文字替换这些字符,而不是用它们的直观表示。