Path.Join Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
Join(String, String, String, String) |
Łączy cztery ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy cztery składniki ścieżki w jedną ścieżkę. |
Join(String, String, String) |
Łączy trzy ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy trzy składniki ścieżki w jedną ścieżkę. |
Join(ReadOnlySpan<String>) | |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
Łączy dwa składniki ścieżki w jedną ścieżkę. |
Join(String[]) |
Łączy tablicę ścieżek w jedną ścieżkę. |
Join(String, String) |
Łączy dwie ścieżki w jedną ścieżkę. |
Join(String, String, String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy cztery ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
- path3
- String
Trzecia ścieżka do sprzężenia.
- path4
- String
Czwarta ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
znaki , path2
path3
i path4
dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1
, path2
path3
lub path4
wynosi zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączonego wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
path3
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (To znaczy, jeśli path2
lub path3
path4
jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy cztery składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
- path3
- ReadOnlySpan<Char>
Zakres znaków, który zawiera trzecią ścieżkę do sprzężenia.
- path4
- ReadOnlySpan<Char>
Zakres znaków, który zawiera czwartą ścieżkę do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
znaki , path2
path3
i path4
dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje.
Length Jeśli dowolny z argumentów path1
, path2
path3
lub path4
ma wartość zero, metoda łączy pozostałe argumenty.
ReadOnlySpan<T>.Length Jeśli wszystkie składniki są zerowe, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
path3
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (To znaczy, jeśli path2
lub path3
path4
jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Dotyczy
Join(String, String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy trzy ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
- path3
- String
Trzecia ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
znaki , path2
i path3
dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość dowolnego argumentu path1
path2
lub path3
ma wartość zero, metoda łączy pozostałe argumenty. Jeśli długość wynikowego ciągu łączonego wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy trzy składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
- path3
- ReadOnlySpan<Char>
Zakres znaków, który zawiera trzecią ścieżkę do sprzężenia.
Zwraca
Połączona ścieżka.
Przykłady
Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) metody i Path.Combine(String, String, String) . Gdy pierwszy ciąg jest w pełni kwalifikowaną ścieżką zawierającą dysk i katalog główny, a drugi jest ścieżką względną z pierwszej ścieżki, dwie metody generują identyczne wyniki. W drugim i trzecim wywołaniu ShowPathInformation
metody ciągi zwrócone przez dwie metody różnią się. W drugim wywołaniu metody pierwszy argument ciągu jest dyskiem, a drugi jest katalogiem rooted. Metoda Join
łączy dwa ciągi i zachowuje zduplikowane separatory ścieżek. Wywołanie GetFullPath metody wyeliminowałoby duplikację. Metoda Combine
porzuca dysk i zwraca katalog rooted na bieżącym dysku. Jeśli bieżący dysk aplikacji to C:\ i ciąg jest używany do uzyskiwania dostępu do pliku lub plików w katalogu, uzyskuje dostęp do C: zamiast D:. Na koniec, ponieważ ostatni argument w trzecim wywołaniu jest ShowPathInformation
zakorzeniony, Join
metoda po prostu dołącza ją do dwóch pierwszych argumentów, aby utworzyć niesensowną ścieżkę pliku, podczas gdy Combine
metoda odrzuca dwa pierwsze ciągi i zwraca trzeci. Użycie tego ciągu w celu uzyskania dostępu do plików może zapewnić aplikacji niezamierzony dostęp do poufnych plików.
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'
Uwagi
Ta metoda po prostu łączy path
znaki , path2
i path3
dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje.
Length Jeśli dowolny path1
z argumentów , path2
lub path3
ma wartość zero, metoda łączy pozostałe argumenty.
ReadOnlySpan<T>.Length Jeśli wszystkie składniki są zerowe, metoda zwraca wartość String.Empty.
Jeśli path1
lub path2
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2
lub path3
jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Zobacz też
Dotyczy
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
Parametry
- paths
- ReadOnlySpan<String>
Zwraca
Dotyczy
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy dwa składniki ścieżki w jedną ścieżkę.
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
Parametry
- path1
- ReadOnlySpan<Char>
Zakres znaków, który zawiera pierwszą ścieżkę do sprzężenia.
- path2
- ReadOnlySpan<Char>
Zakres znaków, który zawiera drugą ścieżkę do sprzężenia.
Zwraca
Połączone ścieżki.
Przykłady
Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) metody i Path.Combine(String, String) . Gdy pierwszy ciąg jest w pełni kwalifikowaną ścieżką zawierającą dysk i katalog główny, a drugi jest ścieżką względną z pierwszej ścieżki, dwie metody generują identyczne wyniki. W drugim i trzecim wywołaniu ShowPathInformation
metody ciągi zwrócone przez dwie metody różnią się. W drugim wywołaniu metody pierwszy argument ciągu jest dyskiem, a drugi jest katalogiem rooted. Metoda Join
łączy dwa ciągi i zachowuje zduplikowane separatory ścieżek. Metoda Combine
porzuca dysk i zwraca katalog rooted na bieżącym dysku. Jeśli bieżący dysk aplikacji to C:\ i ciąg jest używany do uzyskiwania dostępu do pliku lub plików w katalogu, uzyskuje dostęp do C: zamiast D:. Na koniec, ponieważ oba argumenty w trzecim wywołaniu ShowPathInformation
są rooted, Join
metoda po prostu dołącza je, aby utworzyć niesensowną ścieżkę pliku, podczas gdy Combine
metoda odrzuca pierwszy ciąg i zwraca drugi. Użycie tego ciągu w celu uzyskania dostępu do plików może zapewnić aplikacji niezamierzony dostęp do poufnych plików.
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/'
Uwagi
Ta metoda po prostu łączy path
i path2
dodaje znak separatora katalogu między dwoma składnikami ścieżki, jeśli jeden nie jest jeszcze obecny na końcu path1
lub na początku path2
. Jeśli wartość Length elementu lub path1
path2
ma wartość zero, metoda zwraca inną ścieżkę.
Length Jeśli wartość parametru i path2
path1
ma wartość zero, metoda zwraca wartość String.Empty.
Jeśli path1
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2
jest ścieżką bezwzględną, Join
metoda nie odrzuca path1
i zwraca path2
się w miarę Combine działania metody). Poniższy przykład ilustruje różnicę w ścieżkach zwracanych przez dwie metody. Jeśli źródło danych wejściowych użytkownika, Combine metoda umożliwia użytkownikowi dostęp do zasobu systemu plików (takiego jak C:/Users/User1/Documents/Financial/ w przypadku przykładu), że aplikacja nie zamierzała path2
udostępnić.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Zobacz też
Dotyczy
Join(String[])
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy tablicę ścieżek w jedną ścieżkę.
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
Parametry
- paths
- String[]
Tablica ścieżek.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy wszystkie ciągi w programie paths
i dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje.
Length Jeśli dowolna ze ścieżek w elemecie paths
ma wartość zero, metoda łączy pozostałe argumenty. Jeśli wynikowa długość ciągu łączonego wynosi zero, metoda zwraca String.Emptywartość .
Jeśli którakolwiek ze ścieżek w paths
elemecie , z wyjątkiem ostatniego, kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli którakolwiek ze ścieżek w paths
elemecie , z wyjątkiem pierwszej, jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Dotyczy
Join(String, String)
- Źródło:
- Path.cs
- Źródło:
- Path.cs
- Źródło:
- Path.cs
Łączy dwie ścieżki w jedną ścieżkę.
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
Parametry
- path1
- String
Pierwsza ścieżka do sprzężenia.
- path2
- String
Druga ścieżka do sprzężenia.
Zwraca
Połączona ścieżka.
Uwagi
Ta metoda po prostu łączy path
i path2
dodaje znak separatora katalogu między dowolnymi składnikami ścieżki, jeśli jeszcze nie istnieje. Jeśli długość elementu path1
lub path2
ma wartość zero, metoda łączy pozostały argument. Jeśli długość wynikowego ciągu łączonego wynosi zero, metoda zwraca wartość String.Empty.
Jeśli path1
kończy się znakiem separatora ścieżki, który nie jest odpowiedni dla platformy docelowej, Join
metoda zachowuje oryginalny znak separatora ścieżki i dołącza obsługiwany znak. Ten problem występuje w zakodowanych na stałe ścieżkach używających znaku ukośnika odwrotnego systemu Windows ("\"), który nie jest rozpoznawany jako separator ścieżki w systemach opartych na systemie Unix. Aby obejść ten problem, możesz:
Pobierz wartość Path.DirectorySeparatorChar właściwości, a nie znak separatora katalogu, a nie znak separatora katalogu.
Użyj ukośnika do przodu ("/") jako znaku separatora katalogu. Ten znak jest zwracany przez Path.DirectorySeparatorChar właściwość w systemach opartych na systemach Unix i przez Path.AltDirectorySeparatorChar właściwość w systemach Windows.
Combine W przeciwieństwie do metody metoda Join nie próbuje utworzyć katalogu głównego zwróconej ścieżki. (Oznacza to, że jeśli path2
jest ścieżką bezwzględną, Join
metoda nie odrzuca poprzednich ścieżek, jak Combine metoda.
Nie wszystkie nieprawidłowe znaki dla nazw katalogów i plików są interpretowane jako niedopuszczalne przez metodę Join
, ponieważ można użyć tych znaków do wyszukiwania symboli wieloznacznych. Na przykład podczas Path.Join("c:\\", "temp", "*.txt")
tworzenia pliku może być nieprawidłowy, jest on prawidłowy jako ciąg wyszukiwania. W związku z Join
tym metoda pomyślnie ją interpretuje.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla