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
, 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
, path3
path2
или 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(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 или path1
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:/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
метод успешно интерпретирует его.
См. также раздел
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по