我们应该使用Path.DirectorySeperatorChar C#

时间:2009-07-31 09:49:55

标签: c# .net string

这个问题现在已经潜伏在我脑海中一段时间​​了。 Path.DirectorySeperatorChar的重要性是什么? 我的意思是我们不能只把'\'换成 - 我认为这比调用一个属性更快 特别是如果你在应用程序中构建了大量的路径? 有原因吗?除了'\'之外,文件夹/文件路径分离是否还有其他字符?也许在另一个操作系统中?

5 个答案:

答案 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”方法,如果需要,它会添加一个正确类型的斜杠。可以想象一个新的语言符号或字符常量,它被解码为平台的正确字符。