我想在c#中用“\\”分割路径

时间:2011-06-25 11:35:50

标签: c# split

如果我使用path.split("\\");,如何通过“\”拆分路径会给我语法错误?

7 个答案:

答案 0 :(得分:27)

您应该使用

path.Split(Path.DirectorySeparatorChar);

如果您尝试根据本机路径分隔符拆分文件路径。

答案 1 :(得分:7)

没有string.Split重载,需要一个字符串。 (另外,C#区分大小写,因此您需要Split而不是split)。但是,您可以使用:

string bits = path.Split('\\');

将使用带有params char[]参数的重载。它相当于:

string bits = path.Split(new char[] { '\\' });

假设你肯定想用反斜杠分割。您可能希望按照您正在运行的操作系统的目录分隔符进行拆分,在这种情况下Path.DirectorySeparatorChar可能是正确的方法......它将是{{1}在Unix上和Windows上的/。另一方面,如果您尝试解析在Unix上运行的ASP.NET页面中的Windows文件系统路径,那对您没有帮助。换句话说,这取决于你的背景:)

另一种方法是使用PathDirectoryInfo上的方法以更多文件系统敏感的方式获取有关路径的信息。

答案 2 :(得分:5)

尝试path.Split('\\') ---所以单引号(字符)

使用字符串可以:

path.Split(new[] {"\\"}, StringSplitOptions.None)

要使用字符串,您必须指定字符串数组。我从来没有弄明白为什么:)

答案 3 :(得分:1)

在Windows上,在C#Path函数和命令行中,至少在Windows 7 / XP中也可以使用正斜杠。

例如为: 这两个都为我产生了相同的结果:

dir "C:/Python33/Lib/xml"
dir "C:\Python33\Lib\xml"
(In C:)
dir "Python33/Lib/xml"
dir "Python33\Lib\xml"

在Windows上,'/'或'\'都不是filename的有效字符。在Linux上,'\'在文件名中是可以的,所以如果解析两者,你应该知道这一点。

因此,如果您想支持两种形式的路径(就像我一样),您可以这样做:

path.Split(new char[] {'/', '\\'});

在Linux上,使用Path.DirectorySeparatorChar可能更安全。

答案 4 :(得分:1)

为了安全起见,您可以使用:

path.Split(new[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar });

答案 5 :(得分:0)

Path.Split(new char[] { '\\\' });

答案 6 :(得分:-1)

以上所有解决方案均不够。完整的解决方案如下所示:

first : "first"