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
успешно интерпретирует его.
См. также раздел
- форматы пути файлов в системах Windows
Применяется к
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
успешно интерпретирует его.
См. также раздел
- форматы пути файлов в системах Windows
Применяется к
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
успешно интерпретирует его.