我看不出有什么区别.
什么Path.Combine比完美的字符串连接更好?
我猜它在背景中做了非常相似的事情.
任何人都可以告诉我为什么它往往是首选?
Gyö*_*zeg 26
Path.Combine使用Path.PathSeparator和它检查第一个路径是否在末尾已经有一个分隔符,因此它不会复制分隔符.此外,它还会检查要组合的路径元素是否具有无效字符.
这是实现
public static string Combine(string path1, string path2)
{
if (path1 == null || path2 == null)
{
throw new ArgumentNullException((path1 == null) ? "path1" : "path2");
}
Path.CheckInvalidPathChars(path1, false);
Path.CheckInvalidPathChars(path2, false);
return Path.CombineNoChecks(path1, path2);
}
private static string CombineNoChecks(string path1, string path2)
{
if (path2.Length == 0)
{
return path1;
}
if (path1.Length == 0)
{
return path2;
}
if (Path.IsPathRooted(path2))
{
return path2;
}
char c = path1[path1.Length - 1];
if (c != Path.DirectorySeparatorChar && c != Path.AltDirectorySeparatorChar && c != Path.VolumeSeparatorChar)
{
return path1 + Path.DirectorySeparatorChar + path2;
}
return path1 + path2;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8642 次 |
| 最近记录: |