在C#中使用/或\\作为文件夹路径

时间:2010-01-01 05:27:54

标签: c# windows string path escaping

在C#中编写文件路径时,我发现我可以编写类似“C:\”或“C:/”的内容并获得相同的路径。推荐哪一个?我听说使用单个/比使用\更推荐(使用\作为转义序列)。

5 个答案:

答案 0 :(得分:28)

Windows支持两个路径分隔符,因此两者都可以工作,至少对于本地路径(/不适用于网络路径)。问题是在Windows上使用工作但非标准的路径分隔符(/)没有任何实际好处,特别是因为您可以使用逐字字符串文字:

string path = @"C:\"  //Look ma, no escape

我唯一可以看到使用/ separator的好处的情况是,您只使用相对路径并将使用Windows和Linux中的代码。然后你可以让“../foo/bar/baz”指向同一目录。但即使在这种情况下,最好离开System.IO命名空间(Path.DirectorySeparatorCharPath.Combine)来处理此类问题。

答案 1 :(得分:23)

请使用Path.DirectorySeparatorChar或更好,因为Poita建议使用Path.Combine

答案 2 :(得分:8)

使用Path.Combine,您无需担心此类语义。

答案 3 :(得分:5)

我用C#编写路径:

@ “C:\我\路径”

@字符关闭\转义。

答案 4 :(得分:1)

这不是C#问题 - 这是一个Windows问题。 Windows中的路径通常以反斜杠显示:C:。在我看来,这就是你应该在C#中使用的东西。使用@“C:\”来防止反击字符的特殊处理。