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

Dom*_*c K 19 c# windows string escaping path

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

Vin*_*vic 29

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

string path = @"C:\"  //Look ma, no escape
Run Code Online (Sandbox Code Playgroud)

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

  • 你所谓的"原始字符串运算符"实际上是"逐字字符串文字". (4认同)

Sol*_*ogi 23

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


Pet*_*der 8

使用Path.Combine,您不必担心这种语义.

  • @MikeCole 从 .NET 4.0 开始,重载通过 `params` 关键字接受任意数量的参数。 (3认同)

Eri*_* J. 6

我在C#中编写路径,如下所示:

@ "C:\我的\路径"

@字符关闭\转义.