public static string Combine (string path1, string path2);
Returns
The combined paths.
If one of the specified paths is a zero-length string, this method returns the other path.
If path2
contains an absolute path, this method returns path2
.
如果不希望path2是绝对路径的话,可以用Path.IsPathRooted函数检查
A rooted path is file path that is fixed to a specific drive or UNIC path; it contrasts with a path that is relative to the current drive or working directory.
For example, on Windows systems, a rooted path begins with a backslash (for example, "Documents") or a drive letter and colon (for example, "C:Documents").
Note that rooted paths can be either absolute (that is, fully qualified) or relative.
An absolute rooted path is a fully qualified path from the root of a drive to a specific directory.
A relative rooted path specifies a drive, but its fully qualified path is resolved against the current directory.
The following example illustrates the difference.
using System; using System.IO; class Program { static void Main() { string relative1 = "C:Documents"; ShowPathInfo(relative1); string relative2 = "/Documents"; ShowPathInfo(relative2); string absolute = "C:/Documents"; ShowPathInfo(absolute); } private static void ShowPathInfo(string path) { Console.WriteLine($"Path: {path}"); Console.WriteLine($" Rooted: {Path.IsPathRooted(path)}"); Console.WriteLine($" Fully qualified: {Path.IsPathFullyQualified(path)}"); Console.WriteLine($" Full path: {Path.GetFullPath(path)}"); Console.WriteLine(); } } // The example displays the following output when run on a Windows system: // Path: C:Documents // Rooted: True // Fully qualified: False // Full path: c:Usersuser1DocumentsprojectspathispathrootedDocuments // // Path: /Documents // Rooted: True // Fully qualified: False // Full path: c:Documents // // Path: C:/Documents // Rooted: True // Fully qualified: True // Full path: C:Documents