我有:
string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");
两者都给出了相同的结果:
shree\file1.txt
Path.Combine
背后究竟发生了什么?这是最好的编码练习。请清楚我的愿景。谢谢。
答案 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:
答案 1 :(得分:0)
使用第二个。这样您就不必关心目录分隔符是什么。
答案 2 :(得分:0)
Path.Combine背后究竟发生了什么?
它为你建立了一条路径......所以你将使用的那两个并不重要。但那些\\
是多余的
如果您对微优化感兴趣,请创建一个测试中哪一个更快。