Path.Join Метод

Определение

Перегрузки

Join(String, String, String, String)

Сцепляет четыре пути в один путь.

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

Сцепляет четыре компонента пути в один путь.

Join(String, String, String)

Сцепляет три пути в один путь.

Join(String[])

Сцепляет массив путей в один путь.

Join(String, String)

Сцепляет два пути в один путь.

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

Сцепляет два компонента пути в один путь.

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

Сцепляет три компонента пути в один путь.

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, path2path3 и path4 и добавляет символ разделителя каталога между любым из компонентов пути, если он еще отсутствует. Если длина любого из аргументов path1, path2path3 или path4 равна нулю, метод объединяет остальные аргументы. Если длина результирующей объединенной строки равна нулю, метод возвращает String.Empty.

Если path1 или path2 или path3 заканчивается символом разделителя пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

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, path2path3 и path4 и добавляет символ разделителя каталога между любым из компонентов пути, если он еще отсутствует. Если значение Length любого из аргументов path1, path3path2или path4 равно нулю, метод объединяет остальные аргументы. Если значение ReadOnlySpan<T>.Length всех компонентов равно нулю, метод возвращает String.Empty.

Если path1 или path2 или path3 заканчивается символом разделителя пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

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или path2path3 равна нулю, метод объединяет остальные аргументы. Если длина результирующей объединенной строки равна нулю, метод возвращает String.Empty.

Если path1 или path2 заканчивается символом разделителя пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

Combine В отличие от метода , Join метод не пытается корень возвращаемого пути. (То есть, если path2 или path3 является абсолютным путем Join , метод не отменяет предыдущие пути, как Combine метод.)

Не все недопустимые символы для имен каталогов и файлов интерпретируются методом Join как неприемлемые, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "temp", "*.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 и добавляет символ разделителя каталога между любым из компонентов пути, если он еще отсутствует. Если любой Length из путей в paths равен нулю, метод объединяет остальные аргументы. Если длина результирующей сцепленной строки равна нулю, метод возвращает String.Emptyзначение .

Если любой из путей в paths, за исключением последнего, заканчивается символом-разделителем пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

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 а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

Combine В отличие от метода , Join метод не пытается корень возвращаемого пути. (То есть, если path2 является абсолютным путем Join , метод не отменяет предыдущие пути, как Combine метод.)

Не все недопустимые символы для имен каталогов и файлов интерпретируются методом Join как неприемлемые, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "temp", "*.txt") может быть недопустимым при создании файла, он является допустимым в качестве строки поиска. Поэтому Join метод успешно интерпретирует его.

Применяется к

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. Если для Length или path1path2 равно нулю, метод возвращает другой путь. Если для Length обоих path1 значений и path2 равно нулю, метод возвращает String.Empty.

Если path1 заканчивается символом разделителя пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

Combine В отличие от метода , Join метод не пытается корень возвращаемого пути. (То есть, если path2 является абсолютным путем, Join метод не отменяет path1 и не возвращает, path2 как Combine метод.) В следующем примере показана разница в путях, возвращаемых двумя методами. Если источником path2 являются введенные пользователем Combine данные, метод позволяет пользователю получить доступ к ресурсу файловой системы (например , C:/Users/User1/Documents/Financial/ в случае примера), к которому приложение не намеревалось сделать доступным.

Не все недопустимые символы для имен каталогов и файлов интерпретируются методом Join как неприемлемые, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "*.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 и добавляет символ разделителя каталога между любым из компонентов пути, если он еще отсутствует. Если аргумент Length любого из path1аргументов , path2или path3 равен нулю, метод объединяет остальные аргументы. Если значение ReadOnlySpan<T>.Length всех компонентов равно нулю, метод возвращает String.Empty.

Если path1 или path2 заканчивается символом разделителя пути, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя пути и добавляет поддерживаемый. Эта проблема возникает в жестко заданных путях, использующих символ обратной косой черты Windows ("\"), который не распознается в качестве разделителя путей в системах под управлением Unix. Чтобы обойти эту проблему, можно:

  • Извлеките значение свойства, Path.DirectorySeparatorChar а не жестко запрограммировать символ разделителя каталога.

  • Используйте косую черту ("/") в качестве символа разделителя каталога. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах под управлением Unix и свойством в Path.AltDirectorySeparatorChar системах Windows.

Combine В отличие от метода , Join метод не пытается корень возвращаемого пути. (То есть, если path2 или path3 является абсолютным путем Join , метод не отменяет предыдущие пути, как Combine метод.)

Не все недопустимые символы для имен каталогов и файлов интерпретируются методом Join как неприемлемые, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "temp", "*.txt") может быть недопустимым при создании файла, он является допустимым в качестве строки поиска. Поэтому Join метод успешно интерпретирует его.

См. также раздел

Применяется к