Path.Join Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
Join(String, String, String, String) |
Łączy cztery ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy cztery składniki ścieżki w jedną ścieżkę. |
Join(String, String, String) |
Łączy trzy ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy trzy składniki ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<String>) |
Łączy zakres ścieżek w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy dwa składniki ścieżki w jedną ścieżkę. |
Join(String[]) |
Łączy tablicę ścieżek w jedną ścieżkę. |
Join(String, String) |
Łączy dwie ścieżki w jedną ścieżkę. |
Join(String, String, String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy cztery ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
- path3
- String
Trzecia ścieżka do sprzężenia.
- path4
- String
Czwarta ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
, path2
, path3
i path4
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1
, path2
, path3
lub path4
wynosi zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączenia wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
lub path3
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
lub path4
jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, jak to robi metoda Combine).
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy cztery składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
- path3
- ReadOnlySpan<Char>
Zakres znaków, który zawiera trzecią ścieżkę do sprzężenia.
- path4
- ReadOnlySpan<Char>
Zakres znaków, który zawiera czwartą ścieżkę do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
, path2
, path3
i path4
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli Length któregokolwiek z path1
, path2
, path3
lub path4
argument ma wartość zero, metoda łączy pozostałe argumenty. Jeśli ReadOnlySpan<T>.Length wszystkich składników wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
lub path3
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
lub path4
jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, jak to robi metoda Combine).
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Dotyczy
Join(String, String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy trzy ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
- path3
- String
Trzecia ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
, path2
i path3
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1
, path2
lub path3
wynosi zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączenia wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, ponieważ metoda Combine wykonuje).
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy trzy składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
- path3
- ReadOnlySpan<Char>
Zakres znaków, który zawiera trzecią ścieżkę do sprzężenia.
Zwraca
Połączona ścieżka.
Przykłady
Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez metody Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) i Path.Combine(String, String, String). Gdy pierwszy ciąg jest w pełni kwalifikowaną ścieżką zawierającą dysk i katalog główny, a drugi jest ścieżką względną z pierwszej ścieżki, dwie metody generują identyczne wyniki. W drugim i trzecim wywołaniu metody ShowPathInformation
ciągi zwracane przez dwie metody różnią się. W drugim wywołaniu metody pierwszy argument ciągu jest dyskiem, a drugi jest katalogiem rooted. Metoda Join
łączy dwa ciągi i zachowuje zduplikowane separatory ścieżek. Wywołanie metody GetFullPath wyeliminowałoby duplikację. Metoda Combine
porzuca dysk i zwraca katalog rooted na bieżącym dysku. Jeśli bieżący dysk aplikacji to C:\ i ciąg jest używany do uzyskiwania dostępu do pliku lub plików w katalogu, będzie on uzyskiwać dostęp do języka C: zamiast D:. Na koniec, ponieważ ostatni argument w trzecim wywołaniu ShowPathInformation
jest zakorzeniony, metoda Join
po prostu dołącza go do pierwszych dwóch argumentów, aby utworzyć niesensowną ścieżkę pliku, podczas gdy metoda Combine
odrzuca pierwsze dwa ciągi i zwraca trzeci. Użycie tego ciągu w celu uzyskania dostępu do plików może dać aplikacji niezamierzony dostęp do poufnych plików.
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'
Uwagi
Ta metoda po prostu łączy path
, path2
i path3
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli Length dowolnego z path1
, path2
lub path3
argumenty są zerowe, metoda łączy pozostałe argumenty. Jeśli ReadOnlySpan<T>.Length wszystkich składników wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, ponieważ metoda Combine wykonuje).
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Zobacz też
Dotyczy
Join(ReadOnlySpan<String>)
Łączy zakres ścieżek w jedną ścieżkę.
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
Parametry
- paths
- ReadOnlySpan<String>
Zakres ścieżek.
Zwraca
Połączona ścieżka.
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy dwa składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
Zwraca
Połączone ścieżki.
Przykłady
Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez metody Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) i Path.Combine(String, String). Gdy pierwszy ciąg jest w pełni kwalifikowaną ścieżką zawierającą dysk i katalog główny, a drugi jest ścieżką względną z pierwszej ścieżki, dwie metody generują identyczne wyniki. W drugim i trzecim wywołaniu metody ShowPathInformation
ciągi zwracane przez dwie metody różnią się. W drugim wywołaniu metody pierwszy argument ciągu jest dyskiem, a drugi jest katalogiem rooted. Metoda Join
łączy dwa ciągi i zachowuje zduplikowane separatory ścieżek. Metoda Combine
porzuca dysk i zwraca katalog rooted na bieżącym dysku. Jeśli bieżący dysk aplikacji to C:\ i ciąg jest używany do uzyskiwania dostępu do pliku lub plików w katalogu, będzie on uzyskiwać dostęp do języka C: zamiast D:. Na koniec, ponieważ oba argumenty w trzecim wywołaniu do ShowPathInformation
są zakorzenione, metoda Join
po prostu dołącza je, aby utworzyć niesensowną ścieżkę pliku, podczas gdy metoda Combine
odrzuca pierwszy ciąg i zwraca drugi. Użycie tego ciągu w celu uzyskania dostępu do plików może dać aplikacji niezamierzony dostęp do poufnych plików.
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/'
Uwagi
Ta metoda po prostu łączy path
i path2
i dodaje znak separatora katalogu między dwoma składnikami ścieżki, jeśli jeden nie jest jeszcze obecny na końcu path1
lub na początku path2
. Jeśli Lengthpath1
lub path2
wynosi zero, metoda zwraca drugą ścieżkę. Jeśli Length zarówno path1
, jak i path2
wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
jest ścieżką bezwzględną, metoda Join
nie odrzuca path1
i zwraca path2
, jak to robi metoda Combine). Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez dwie metody. Jeśli źródłem path2
jest dane wejściowe użytkownika, metoda Combine umożliwia użytkownikowi uzyskanie dostępu do zasobu systemu plików (na przykład C:/Users/User1/Documents/Financial/ w przypadku przykładu), że aplikacja nie zamierzała być dostępna.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Zobacz też
Dotyczy
Join(String[])
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy tablicę ścieżek w jedną ścieżkę.
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
Parametry
- paths
- String[]
Tablica ścieżek.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy wszystkie ciągi w paths
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli Length któregokolwiek ze ścieżek w paths
wynosi zero, metoda łączy pozostałe argumenty. Jeśli wynikowa długość ciągu łączenia wynosi zero, metoda zwraca wartość String.Empty.
Jeśli którakolwiek ze ścieżek w paths
, z wyjątkiem ostatniego, kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli którakolwiek ze ścieżek w paths
, z wyjątkiem pierwszej, jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, ponieważ metoda Combine.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.
Dotyczy
Join(String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy dwie ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
i path2
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość path1
lub path2
wynosi zero, metoda łączy pozostały argument. Jeśli długość wynikowego ciągu łączenia wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, metoda Join
zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w ścieżkach zakodowanych na stałe, które używają znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość właściwości Path.DirectorySeparatorChar, a nie trwale koduje znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez właściwość Path.DirectorySeparatorChar w systemach opartych na systemie Unix i przez właściwość Path.AltDirectorySeparatorChar w systemach Windows.
W przeciwieństwie do metody Combine metoda Join nie próbuje wykorzenić zwróconej ścieżki. (Oznacza to, że jeśli path2
jest ścieżką bezwzględną, metoda Join
nie odrzuca poprzednich ścieżek, ponieważ metoda Combine.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Jeśli na przykład Path.Join("c:\\", "temp", "*.txt")
mogą być nieprawidłowe podczas tworzenia pliku, jest on prawidłowy jako ciąg wyszukiwania. W związku z tym metoda Join
pomyślnie ją zinterpretuje.