我有:
string Combine = Path.Combine("shree\\", "file1.txt");
string Combine1 = Path.Combine("shree", "file1.txt");
两者给出相同的结果:
shree\file1.txt
Path.Combine
背后究竟发生了什么?这是执行此操作的最佳编码实践。请澄清我的看法。谢谢。
最佳答案
如果第一个路径(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\";
可以在 MSDN 上找到有关 Combine 方法的更多信息:
关于c# - Path.Combine 背后究竟发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8983285/