Path.Join 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Join(String, String, String, String) |
將四個路徑串連成單一路徑。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
將四個路徑元件串連成單一路徑。 |
Join(String, String, String) |
將三個路徑串連成單一路徑。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
將三個路徑元件串連成單一路徑。 |
Join(ReadOnlySpan<String>) |
將路徑範圍串連成單一路徑。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
將兩個路徑元件串連成單一路徑。 |
Join(String[]) |
將路徑陣列串連成單一路徑。 |
Join(String, String) |
將兩個路徑串連成單一路徑。 |
Join(String, String, String, String)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將四個路徑串連成單一路徑。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2, System::String ^ path3, System::String ^ path4);
public static string Join (string? path1, string? path2, string? path3, string? path4);
static member Join : string * string * string * string -> string
Public Shared Function Join (path1 As String, path2 As String, path3 As String, path4 As String) As String
參數
- path1
- String
要聯結的第一個路徑。
- path2
- String
要聯結的第二個路徑。
- path3
- String
要聯結的第三個路徑。
- path4
- String
要聯結的第四個路徑。
傳回
串連路徑。
備註
這個方法只會串連 path
、path2
、path3
和 path4
,並在其中一個路徑元件之間新增目錄分隔符,如果尚未存在的話。 如果任何 path1
、path2
、path3
或 path4
自變數的長度為零,則方法會串連其餘的自變數。 如果產生的串連字串長度為零,方法會傳回 String.Empty。
如果 path1
或 path2
或 path3
結尾為不適合目標平台的路徑分隔符,則 Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
或 path3
或 path4
是絕對路徑,則 Join
方法不會像 Combine 方法一樣捨棄先前的路徑。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
適用於
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將四個路徑元件串連成單一路徑。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3, ReadOnlySpan<char> path4);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3, ReadOnlySpan<char> path4);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char), path3 As ReadOnlySpan(Of Char), path4 As ReadOnlySpan(Of Char)) As String
參數
- path1
- ReadOnlySpan<Char>
包含要聯結之第一個路徑的字元範圍。
- path2
- ReadOnlySpan<Char>
包含要聯結之第二個路徑的字元範圍。
- path3
- ReadOnlySpan<Char>
包含要聯結之第三個路徑的字元範圍。
- path4
- ReadOnlySpan<Char>
包含要聯結之第四個路徑的字元範圍。
傳回
串連路徑。
備註
這個方法只會串連 path
、path2
、path3
和 path4
,並在其中一個路徑元件之間新增目錄分隔符,如果尚未存在的話。 如果任何 path1
、path2
、path3
或 path4
自變數的 Length 為零,則方法會串連其餘的自變數。 如果所有元件的 ReadOnlySpan<T>.Length 為零,方法會傳回 String.Empty。
如果 path1
或 path2
或 path3
結尾為不適合目標平台的路徑分隔符,則 Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
或 path3
或 path4
是絕對路徑,則 Join
方法不會像 Combine 方法一樣捨棄先前的路徑。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
適用於
Join(String, String, String)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將三個路徑串連成單一路徑。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2, System::String ^ path3);
public static string Join (string? path1, string? path2, string? path3);
static member Join : string * string * string -> string
Public Shared Function Join (path1 As String, path2 As String, path3 As String) As String
參數
- path1
- String
要聯結的第一個路徑。
- path2
- String
要聯結的第二個路徑。
- path3
- String
要聯結的第三個路徑。
傳回
串連路徑。
備註
這個方法只會串連 path
、path2
和 path3
,並在其中一個路徑元件之間加入一個目錄分隔符,如果尚未存在的話。 如果任何 path1
、path2
或 path3
自變數的長度為零,則方法會串連其餘的自變數。 如果產生的串連字串長度為零,方法會傳回 String.Empty。
如果 path1
或 path2
以不適合目標平臺的路徑分隔符結尾,Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
或 path3
是絕對路徑,Join
方法不會像 Combine 方法一樣捨棄先前的路徑。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
適用於
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將三個路徑元件串連成單一路徑。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char), path3 As ReadOnlySpan(Of Char)) As String
參數
- path1
- ReadOnlySpan<Char>
包含要聯結之第一個路徑的字元範圍。
- path2
- ReadOnlySpan<Char>
包含要聯結之第二個路徑的字元範圍。
- path3
- ReadOnlySpan<Char>
包含要聯結之第三個路徑的字元範圍。
傳回
串連路徑。
範例
下列範例說明 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) 和 Path.Combine(String, String, String) 方法所傳回路徑的差異。 當第一個字串是包含磁碟驅動器和根目錄的完整路徑,而第二個字元串是來自第一個路徑的相對路徑時,這兩種方法會產生相同的結果。 在第二次和第三次呼叫 ShowPathInformation
方法時,兩個方法所傳回的字串會分位。 在第二個方法呼叫中,第一個字元串自變數是磁碟驅動器,而第二個是根目錄。
Join
方法會串連兩個字串,並保留重複的路徑分隔符。 呼叫 GetFullPath 方法將會消除重複。
Combine
方法會放棄磁碟驅動器,並傳回目前磁碟驅動器上的根目錄。 如果應用程式的目前磁碟驅動器是 C:\ ,而且字串是用來存取目錄中的檔案或檔案,則會存取 C: 而不是 D:。 最後,因為第三次呼叫 ShowPathInformation
中的最後一個自變數都是根目錄,所以 Join
方法只會將它附加至前兩個自變數以建立不區分的檔案路徑,而 Combine
方法會捨棄前兩個字符串並傳回第三個字符串。 使用此字串進行檔案存取可能會讓應用程式對敏感性檔案進行非預期的存取。
using System;
using System.IO;
class Program3
{
static void Main()
{
ShowPathInformation("C:/", "users/user1/documents", "letters");
ShowPathInformation("D:/", "/users/user1/documents", "letters");
ShowPathInformation("D:/", "users/user1/documents", "C:/users/user1/documents/data");
}
private static void ShowPathInformation(string path1, string path2, string path3)
{
Console.WriteLine($"Concatenating '{path1}', '{path2}', and '{path3}'");
Console.WriteLine($" Path.Join: '{Path.Join(path1, path2, path3)}'");
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2, path3)}'");
Console.WriteLine($" {Path.GetFullPath(Path.Join(path1, path2, path3))}");
}
}
// The example displays the following output if run on a Windows system:
// Concatenating 'C:/', 'users/user1/documents', and 'letters'
// Path.Join: 'C:/users/user1/documents\letters'
// Path.Combine: 'C:/users/user1/documents\letters'
// C:\users\user1\documents\letters
// Concatenating 'D:/', '/users/user1/documents', and 'letters'
// Path.Join: 'D://users/user1/documents\letters'
// Path.Combine: '/users/user1/documents\letters'
// D:\users\user1\documents\letters
// Concatenating 'D:/', 'users/user1/documents', and 'C:/users/user1/documents/data'
// Path.Join: 'D:/users/user1/documents\C:/users/user1/documents/data'
// Path.Combine: 'C:/users/user1/documents/data'
// D:\users\user1\documents\C:\users\user1\documents\data
Imports System.IO
Module Program
Public Sub Main()
Dim path1 As String = "C:/"
Dim path2 As String = "users/user1/documents"
Dim path3 As String = "letters"
ShowPathInformation(path1, path2, path3)
path1 = "D:/"
path2 = "/users/user1/documents"
path3 = "letters"
ShowPathInformation(path1, path2, path3)
path1 = "D:/"
path2 = "users/user1/documents"
path3 = "C:/users/user1/documents/data"
ShowPathInformation(path1, path2, path3)
End Sub
Private Sub ShowPathInformation(path1 As String, path2 As String, path3 As String)
Dim result = Path.Join(path1.AsSpan(), path2.AsSpan(), path3.AsSpan())
Console.WriteLine($"Concatenating '{path1}, '{path2}', and `{path3}'")
Console.WriteLine($" Path.Join: '{result}'")
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2, path3)}'")
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Concatenating 'C:/, 'users/user1/documents', and `letters'
' Path.Join: 'C:/users/user1/documents\letters'
' Path.Combine: 'C:/users/user1/documents\letters'
'
' Concatenating 'D:/, '/users/user1/documents', and `letters'
' Path.Join: 'D:'users/user1/documents\letters'
' Path.Combine: '/users/user1/documents\letters'
'
' Concatenating 'D:/, 'users/user1/documents', and `C:/users/user1/documents/data'
' Path.Join: 'D:/users/user1/documents\C:/users/user1/documents/data'
' Path.Combine: 'C:/users/user1/documents/data'
備註
這個方法只會串連 path
、path2
和 path3
,並在其中一個路徑元件之間加入一個目錄分隔符,如果尚未存在的話。 如果任何 path1
、path2
或 path3
自變數的 Length 為零,則方法會串連其餘的自變數。 如果所有元件的 ReadOnlySpan<T>.Length 為零,方法會傳回 String.Empty。
如果 path1
或 path2
以不適合目標平臺的路徑分隔符結尾,Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
或 path3
是絕對路徑,Join
方法不會像 Combine 方法一樣捨棄先前的路徑。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
另請參閱
適用於
Join(ReadOnlySpan<String>)
將路徑範圍串連成單一路徑。
public:
static System::String ^ Join(ReadOnlySpan<System::String ^> paths);
public static string Join (scoped ReadOnlySpan<string?> paths);
static member Join : ReadOnlySpan<string> -> string
Public Shared Function Join (paths As ReadOnlySpan(Of String)) As String
參數
- paths
- ReadOnlySpan<String>
路徑範圍。
傳回
串連路徑。
適用於
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將兩個路徑元件串連成單一路徑。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char)) As String
參數
- path1
- ReadOnlySpan<Char>
包含要聯結之第一個路徑的字元範圍。
- path2
- ReadOnlySpan<Char>
包含要聯結之第二個路徑的字元範圍。
傳回
合併的路徑。
範例
下列範例說明 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) 和 Path.Combine(String, String) 方法所傳回路徑的差異。 當第一個字串是包含磁碟驅動器和根目錄的完整路徑,而第二個是來自第一個路徑的相對路徑時,這兩種方法會產生相同的結果。 在第二次和第三次呼叫 ShowPathInformation
方法時,兩個方法所傳回的字串會分位。 在第二個方法呼叫中,第一個字元串自變數是磁碟驅動器,而第二個是根目錄。
Join
方法會串連兩個字串,並保留重複的路徑分隔符。
Combine
方法會放棄磁碟驅動器,並傳回目前磁碟驅動器上的根目錄。 如果應用程式的目前磁碟驅動器是 C:\ ,而且字串是用來存取目錄中的檔案或檔案,則會存取 C: 而不是 D:。 最後,由於第三次呼叫 ShowPathInformation
中的兩個自變數都是根目錄,所以 Join
方法只會附加它們以建立不區分的檔案路徑,而 Combine
方法會捨棄第一個字符串並傳回第二個字符串。 使用此字串進行檔案存取可能會讓應用程式對敏感性檔案進行非預期的存取。
using System;
using System.IO;
class Program2
{
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)}'");
}
}
// The example displays the following output if run on a Windows system:
// 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/'
Imports System.IO
Module Example
Public Sub Main()
Dim path1 = "C:/Program Files/"
Dim 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)
End Sub
Private Sub ShowPathInformation(path1 As String, path2 As String)
Dim 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)}'")
Console.WriteLine()
End Sub
End Module
' The example displays the following output if run on a Windows system:
' 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
和 path2
,並在兩個路徑元件之間新增目錄分隔符,如果 path1
結尾或 path2
開頭還不存在的話。 如果 path1
或 path2
的 Length 為零,則方法會傳回另一個路徑。 如果 path1
與 path2
Length 都是零,則方法會傳回 String.Empty。
如果 path1
以不適合目標平臺的路徑分隔符結尾,Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
是絕對路徑,Join
方法不會捨棄 path1
,並傳回 path2
,就像 Combine 方法一樣。下列範例說明兩種方法所傳回路徑的差異。 如果 path2
的來源是使用者輸入,Combine 方法可讓使用者存取檔系統資源(例如,C:/Users/User1/Documents/Financial/,而應用程式不打算存取。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
另請參閱
適用於
Join(String[])
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將路徑陣列串連成單一路徑。
public:
static System::String ^ Join(... cli::array <System::String ^> ^ paths);
public static string Join (params string?[] paths);
static member Join : string[] -> string
Public Shared Function Join (ParamArray paths As String()) As String
參數
- paths
- String[]
路徑陣列。
傳回
串連路徑。
備註
如果路徑元件尚未存在,這個方法只會串連 paths
中的所有字串,並在任何路徑元件之間加入目錄分隔符。 如果 paths
中任何路徑的 Length 為零,則方法會串連其餘自變數。 如果產生的串連字串長度為零,方法會傳回 String.Empty。
如果 paths
中的任何路徑,但最後一個路徑除外,則以不適合目標平臺的路徑分隔符結尾,則 Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 paths
中的任何路徑,除了第一個路徑之外,是絕對路徑,Join
方法不會捨棄先前的路徑,就像 Combine 方法一樣。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。
適用於
Join(String, String)
- 來源:
- Path.cs
- 來源:
- Path.cs
- 來源:
- Path.cs
將兩個路徑串連成單一路徑。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2);
public static string Join (string? path1, string? path2);
static member Join : string * string -> string
Public Shared Function Join (path1 As String, path2 As String) As String
參數
- path1
- String
要聯結的第一個路徑。
- path2
- String
要聯結的第二個路徑。
傳回
串連路徑。
備註
如果路徑元件尚未存在,這個方法只會串連 path
和 path2
,並在任何路徑元件之間新增目錄分隔符。 如果 path1
或 path2
的長度為零,則方法會串連其餘自變數。 如果產生的串連字串長度為零,方法會傳回 String.Empty。
如果 path1
以不適合目標平臺的路徑分隔符結尾,Join
方法會保留原始路徑分隔符,並附加支援的分隔符。 此問題發生在使用 Windows 反斜杠 (“\”) 字元的硬式編碼路徑中,此字元在 Unix 系統上無法辨識為路徑分隔符。 若要解決此問題,您可以:
擷取 Path.DirectorySeparatorChar 屬性的值,而不是硬式編碼目錄分隔符。
使用正斜線 (“/”) 作為目錄分隔符。 這個字元是由 Unix 系統上的 Path.DirectorySeparatorChar 屬性和 Windows 系統上的 Path.AltDirectorySeparatorChar 屬性所傳回。
不同於 Combine 方法,Join 方法不會嘗試根目錄傳回的路徑。 (也就是說,如果 path2
是絕對路徑,Join
方法不會像 Combine 方法一樣捨棄先前的路徑。
並非所有無效的目錄和檔名字符都會被 Join
方法解譯為無法接受,因為您可以使用這些字元來搜尋通配符。 例如,雖然建立檔案時 Path.Join("c:\\", "temp", "*.txt")
可能無效,但它在搜尋字串中是有效的。 因此,Join
方法會成功解譯它。