Path.Join Metoda

Definicja

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(String[])

Łączy tablicę ścieżek w jedną ścieżkę.

Join(String, String)

Łączy dwie ścieżki w jedną ścieżkę.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Łączy dwa składniki ścieżki w jedną ścieżkę.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Łączy trzy składniki ś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 pathznaki , path2path3 i path4 dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1, path2path3 lub path4 wynosi zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączonego wynosi zero, metoda zwraca wartość String.Empty.

Jeśli path1 lub path2path3 kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (To znaczy, jeśli path2 lub path3path4 jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

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 pathznaki , path2path3 i path4 dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Length Jeśli dowolny z argumentów path1, path2path3 lub path4 ma wartość zero, metoda łączy pozostałe argumenty. ReadOnlySpan<T>.Length Jeśli wszystkie składniki są zerowe, metoda zwraca wartość String.Empty.

Jeśli path1 lub path2path3 kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (To znaczy, jeśli path2 lub path3path4 jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

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 pathznaki , path2i path3 dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1path2 lub path3 ma wartość zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączonego 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, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2 lub path3 jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

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 programie paths i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Length Jeśli dowolna ze ścieżek w elemecie paths ma wartość zero, metoda łączy pozostałe argumenty. Jeśli wynikowa długość ciągu łączonego wynosi zero, metoda zwraca String.Emptywartość .

Jeśli którakolwiek ze ścieżek w pathselemecie , z wyjątkiem ostatniego, kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli którakolwiek ze ścieżek w pathselemecie , z wyjątkiem pierwszej, jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

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 dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość elementu path1 lub path2 ma wartość zero, metoda łączy pozostały argument. Jeśli długość wynikowego ciągu łączonego 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, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2 jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

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 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) metody 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 ShowPathInformation metody ciągi zwrócone 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, uzyskuje dostęp do C: zamiast D:. Na koniec, ponieważ oba argumenty w trzecim wywołaniu ShowPathInformation są rooted, Join metoda po prostu dołącza je, aby utworzyć niesensowną ścieżkę pliku, podczas gdy Combine metoda odrzuca pierwszy ciąg i zwraca drugi. Użycie tego ciągu w celu uzyskania dostępu do plików może zapewnić 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 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 wartość Length elementu lub path1path2 ma wartość zero, metoda zwraca inną ścieżkę. Length Jeśli wartość parametru i path2path1 ma wartość zero, metoda zwraca wartość String.Empty.

Jeśli path1 kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2 jest ścieżką bezwzględną, Join metoda nie odrzuca path1 i zwraca path2 się w miarę Combine działania metody). Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez dwie metody. Jeśli źródło danych wejściowych użytkownika, Combine metoda umożliwia użytkownikowi dostęp do zasobu systemu plików (takiego jak C:/Users/User1/Documents/Financial/ w przypadku przykładu), że aplikacja nie zamierzała path2 udostępnić.

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. Na przykład podczas Path.Join("c:\\", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

Zobacz też

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 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) metody 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 ShowPathInformation metody ciągi zwrócone 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 GetFullPath metody 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, uzyskuje dostęp do C: zamiast D:. Na koniec, ponieważ ostatni argument w trzecim wywołaniu jest ShowPathInformation zakorzeniony, Join metoda po prostu dołącza ją do dwóch pierwszych argumentów, aby utworzyć niesensowną ścieżkę pliku, podczas gdy Combine metoda odrzuca dwa pierwsze ciągi i zwraca trzeci. Użycie tego ciągu w celu uzyskania dostępu do plików może zapewnić 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 pathznaki , path2i path3 dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Length Jeśli dowolny path1z argumentów , path2lub path3 ma wartość zero, metoda łączy pozostałe argumenty. ReadOnlySpan<T>.Length Jeśli wszystkie składniki są zerowe, 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, Join metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających 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:

Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2 lub path3 jest ścieżką bezwzględną, Join metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.

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. Na przykład podczas Path.Join("c:\\", "temp", "*.txt") tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join tym metoda pomyślnie ją interpretuje.

Zobacz też

Dotyczy