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
- Исходный код:
- 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
Четвертый путь для соединения.
Возвращаемое значение
Объединенный путь.
Комментарии
Этот метод просто объединяет и добавляет символ разделителя каталогов pathpath2path3path4 между любым из компонентов пути, если он еще не присутствует. Если длина любого аргумента path1или path2path3path4 аргумента равна нулю, метод объединяет оставшиеся аргументы. Если длина результирующей сцепленной строки равна нулю, метод возвращается String.Empty.
Если path1 или path2path3 заканчивается символом разделителя путей, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя путей и добавляет поддерживаемый. Эта проблема возникает в жестко закодированных путях, использующих символ обратной косой черты Windows (\), который не распознается как разделитель путей в системах на основе Unix. Чтобы обойти эту проблему, можно:
Извлеките значение Path.DirectorySeparatorChar свойства, а не жестко кодирование символа разделителя каталогов.
Используйте косую черту вперед ("/") в качестве символа разделителя каталогов. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах unix и свойством Path.AltDirectorySeparatorChar в системах Windows.
Combine В отличие от метода, Join метод не пытается корень возвращаемого пути. (То есть, если path2 или path3path4 является абсолютным путем, Join метод не отменяет предыдущие пути, так как Combine метод делает.)
Недопустимые символы для имен каталогов и файлов интерпретируются как неприемлемые Join методом, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "temp", "*.txt") при создании файла может быть недопустимо, он является допустимым в качестве строки поиска. Поэтому Join метод успешно интерпретирует его.
Применяется к
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- 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>
Диапазон символов, содержащий четвертый путь для соединения.
Возвращаемое значение
Объединенный путь.
Комментарии
Этот метод просто объединяет и добавляет символ разделителя каталогов pathpath2path3path4 между любым из компонентов пути, если он еще не присутствует.
Length Если любой из path1аргументов или path3path2path4 аргументов равен нулю, метод объединяет оставшиеся аргументы.
ReadOnlySpan<T>.Length Если все компоненты равны нулю, метод возвращаетсяString.Empty.
Если path1 или path2path3 заканчивается символом разделителя путей, который не подходит для целевой платформы, Join метод сохраняет исходный символ разделителя путей и добавляет поддерживаемый. Эта проблема возникает в жестко закодированных путях, использующих символ обратной косой черты Windows (\), который не распознается как разделитель путей в системах на основе Unix. Чтобы обойти эту проблему, можно:
Извлеките значение Path.DirectorySeparatorChar свойства, а не жестко кодирование символа разделителя каталогов.
Используйте косую черту вперед ("/") в качестве символа разделителя каталогов. Этот символ возвращается свойством Path.DirectorySeparatorChar в системах unix и свойством Path.AltDirectorySeparatorChar в системах Windows.
Combine В отличие от метода, Join метод не пытается корень возвращаемого пути. (То есть, если path2 или path3path4 является абсолютным путем, Join метод не отменяет предыдущие пути, так как Combine метод делает.)
Недопустимые символы для имен каталогов и файлов интерпретируются как неприемлемые Join методом, так как эти символы можно использовать для поиска подстановочных знаков. Например, хотя Path.Join("c:\\", "temp", "*.txt") при создании файла может быть недопустимо, он является допустимым в качестве строки поиска. Поэтому Join метод успешно интерпретирует его.
Применяется к
Join(String, String, String)
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- 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
Третий путь для присоединения.
Возвращаемое значение
Объединенный путь.
Комментарии
Этот метод просто объединяет и добавляет символ разделителя каталогов pathpath2path3 между любым из компонентов пути, если он еще не присутствует. Если длина любого из path1path2 аргументов равна 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
- Исходный код:
- 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'
Комментарии
Этот метод просто объединяет и добавляет символ разделителя каталогов pathpath2path3 между любым из компонентов пути, если он еще не присутствует.
Length Если любой из path1аргументов или path2path3 аргументов равен нулю, метод объединяет оставшиеся аргументы.
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 метод успешно интерпретирует его.
См. также раздел
- форматы пути File в системах Windows
Применяется к
Join(ReadOnlySpan<String>)
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
Объединяет диапазон путей в один путь.
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
- Исходный код:
- 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 равно нулю, метод возвращает другой путь. Если оба Lengthpath1 значения и 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 метод успешно интерпретирует его.
См. также раздел
- форматы пути File в системах Windows
Применяется к
Join(String[])
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- 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
- Исходный код:
- 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 добавляет символ разделителя каталогов между любым из компонентов пути, если он еще не присутствует. Если длина либо path1path2 равна нулю, метод объединяет оставшийся аргумент. Если длина результирующей сцепленной строки равна нулю, метод возвращается 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 метод успешно интерпретирует его.