C#/Mac:Path.GetInvalidPathChars()和Path.GetInvalidFileNameChars()结果

C#/Mac:Path.GetInvalidPathChars()和Path.GetInvalidFileNameChars()结果,c#,macos,mono,path,platform-specific,C#,Macos,Mono,Path,Platform Specific,这在OSX上显示什么?有人能用Mono在他们的机器上运行这个吗 foreach (char c in System.IO.Path.GetInvalidPathChars()) { Console.Write((byte)c); Console.Write(", "); } 这显示了什么: foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { Console.Write((byte)c); Cons

这在OSX上显示什么?有人能用Mono在他们的机器上运行这个吗

foreach (char c in System.IO.Path.GetInvalidPathChars())
{
   Console.Write((byte)c);
   Console.Write(", ");
}
这显示了什么:

foreach (char c in System.IO.Path.GetInvalidFileNameChars())
{
   Console.Write((byte)c);
   Console.Write(", ");
}
作为参考,我在Windows和Linux中包含了GetInvalidPathChars的输出

在Windows中输出: 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1 8、19、20、21、22、23、24、25、26、27、28、29、30、31、

openSUSE中的输出: 0,

此外,我还在Windows和Linux中包含GetInvalidFileNameChars的输出

在Windows中输出: 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1 8、19、20、21、22、23、24、25、26、27、28、29、30、31、58、42、63、92、47、

openSUSE中的输出: 0,47,

问候,


_NT

Mac OS X上的输出与Linux上的输出相同:

GetInvalidPathChars:0,
GetInvalidFileNameChars:0,47,

以下是Github上Mono的相关代码:


当不在Windows上运行时,这两种方法仅返回空字符,
GetInvalidFileNameChars
另外还返回正斜杠字符。对于所使用的非Windows操作系统或文件系统,似乎没有任何区别。

很好的参考资料。为了其他阅读器的利益,
GetInvalid*Chars
不保证检索平台上的所有无效字符,但所有返回的字符都应该是无效的。在示例代码中,您将字符转换为字节。这会破坏你想要的信息;你会得到一些可能毫无意义的数字。您应该改为强制转换为int。在不同装载的文件系统上运行它会很有趣。当从FAT文件系统运行时,是否有人可以在Linux或Mac上运行此功能?