Path.Combine背后究竟发生了什么

时间:2012-01-24 07:21:35

标签: c# asp.net path

我有:

string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");

两者都给出了相同的结果:

shree\file1.txt

Path.Combine背后究竟发生了什么?这是最好的编码练习。请清楚我的愿景。谢谢。

3 个答案:

答案 0 :(得分:5)

如果第一个路径(shree或shree \\)没有以有效的分隔符(例如DirectorySeparatorChar)结尾,则会在连接之前将其附加到路径。

所以

string path1 = "shree";
string path2 = "file1.txt";
string combined = Path.Combine(path1, path2);

将导致“shree \ file1.txt”,而

string path1 = "shree\\";

已包含有效的分隔符,因此Combine方法不会添加另一个。

在这里,您在字符串变量(path1)中键入了两个斜杠。第一个只是第二个作为转义字符。这与使用逐字字符串文字相同。

string path1 = @"shree\";

有关Combine方法的更多信息,请访问MSDN:

http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

答案 1 :(得分:0)

使用第二个。这样您就不必关心目录分隔符是什么。

答案 2 :(得分:0)

  

Path.Combine背后究竟发生了什么?

它为你建立了一条路径......所以你将使用的那两个并不重要。但那些\\是多余的 如果您对微优化感兴趣,请创建一个测试中哪一个更快。