C# 中Path.Join与Path.Combine的区别
public static void Main()
{
var path1 = "C:/Program Files/";
var path2 = "Utilities/SystemUtilities";
ShowPathInformation(path1, path2);
path1 = "C:/";
path2 = "/Program Files";
ShowPathInformation(path1, path2);
path1 = "C:/Users/Public/Documents/";
path2 = "C:/Users/User1/Documents/Financial/";
ShowPathInformation(path1, path2);
}
private static void ShowPathInformation(string path1, string path2)
{
var result = Path.Join(path1.AsSpan(), path2.AsSpan());
Console.WriteLine($"Concatenating '{path1}' and '{path2}'");
Console.WriteLine($" Path.Join: '{result}'");
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2)}'");
}
运行结果:
Concatenating 'C:/Program Files/' and 'Utilities/SystemUtilities'
Path.Join: 'C:/Program Files/Utilities/SystemUtilities'
Path.Combine: 'C:/Program Files/Utilities/SystemUtilities'
Concatenating 'C:/' and '/Program Files'
Path.Join: 'C://Program Files'
Path.Combine: '/Program Files'
Concatenating 'C:/Users/Public/Documents/' and 'C:/Users/User1/Documents/Financial/'
Path.Join: 'C:/Users/Public/Documents/C:/Users/User1/Documents/Financial/'
Path.Combine: 'C:/Users/User1/Documents/Financial/'
第二次结果可以看到,Path.Combine中当String2是相对路径的时候,返回的是String2后面的,String1被抛弃
第三次结果可以看到,Path.Join只是对两个字符串做了拼接
参考资料:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.path.join?view=net-6.0#system-io-path-join(system-string-system-string-system-string-system-string)
欢迎关注个人公众号【智能建造小硕】(分享计算机编程、人工智能、智能建造、日常学习和科研经验等,欢迎大家关注交流。)