这个问题现在已经潜伏在我脑海中一段时间了。 Path.DirectorySeperatorChar的重要性是什么? 我的意思是我们不能只把'\'换成 - 我认为这比调用一个属性更快 特别是如果你在应用程序中构建了大量的路径? 有原因吗?除了'\'之外,文件夹/文件路径分离是否还有其他字符?也许在另一个操作系统中?
答案 0 :(得分:15)
是的,请使用该属性。它将更加面向未来。您将与Mono(Linux)兼容,但MS.NET也可能转移到其他平台(如Compact和Micro Framework)。
但最好的方法是使用Path.Combine()
和Path.GetFileName()
等,然后根本不需要分隔符。
答案 1 :(得分:3)
使用Path.Combine()
组合路径。不幸的是,它没有那么快,因为Path
类'方法在string
上运行而不是特殊结构(Path
作为非静态类,也许?)。为什么这是你问的问题?这个宝石:
<强>例外:强>
ArgumentException
path1 或 path2 包含GetInvalidPathChars
中定义的一个或多个无效字符。
答案 2 :(得分:1)
在linux上,分隔符为/。我们在那里有Mono。
答案 3 :(得分:1)
Windows接受/ for路径分隔符不是吗?只需使用它即可兼容。但是,使用组合方法更好。
答案 4 :(得分:0)
使代码与其他平台兼容,例如Unix,它使用正斜杠作为路径分隔符。我相信Windows本身也存在一些特殊的角落案例,例如设备驱动程序路径。
对Josh答案的澄清:Windows 通常接受路径分隔符的正斜杠,但不是每个Windows应用程序都这样做,并且可能有一些Windows也没有。例如,在命令行中,正斜杠通常会引入一个参数。所以我个人不会依赖这个。
但是,我同意,对于某些情况下你想要经常使用的东西,它是非常冗长的。在我自己的(Delphi)代码中,我曾经使用过“AddSlash”方法,如果需要,它会添加一个正确类型的斜杠。可以想象一个新的语言符号或字符常量,它被解码为平台的正确字符。