如果我使用path.split("\\");
,如何通过“\”拆分路径会给我语法错误?
答案 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文件系统路径,那对您没有帮助。换句话说,这取决于你的背景:)
另一种方法是使用Path
和DirectoryInfo
上的方法以更多文件系统敏感的方式获取有关路径的信息。
答案 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"