Поделиться через


Path.Join Метод

Определение

Перегрузки

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

  • Используйте косую черту вперед ("/") в качестве символа разделителя каталогов. Этот символ возвращается свойством 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, path2, path3 и path4 и добавляет символ разделителя каталогов между любым из компонентов пути, если он еще не присутствует. Если Length любого из path1, path2, path3 или 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, path2 или path3 аргумента равна нулю, метод объединяет остальные аргументы. Если длина результирующей сцепленной строки равна нулю, метод возвращает 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(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 успешно интерпретирует его.

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

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

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. Если Lengthpath1 или path2 равно нулю, метод возвращает другой путь. Если 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:/Users1/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 и добавляет символ разделителя каталогов между любым из компонентов пути, если он еще не присутствует. Если 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 успешно интерпретирует его.

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