Path.Join Yöntem

Tanım

Aşırı Yüklemeler

Join(String, String, String, String)

Dört yolu tek bir yolda birleştirir.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Dört yol bileşenini tek bir yolda birleştirir.

Join(String, String, String)

Üç yolu tek bir yolda birleştirir.

Join(String[])

Bir yol dizisini tek bir yol olarak birleştirir.

Join(String, String)

İki yolu tek bir yolda birleştirir.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

İki yol bileşenini tek bir yolda birleştirir.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Üç yol bileşenini tek bir yolda birleştirir.

Join(String, String, String, String)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

Dört yolu tek bir yolda birleştirir.

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

Parametreler

path1
String

Katılmanın ilk yolu.

path2
String

Katılmanın ikinci yolu.

path3
String

Katılmanın üçüncü yolu.

path4
String

Katılmanın dördüncü yolu.

Döndürülenler

Birleştirilmiş yol.

Açıklamalar

Bu yöntem, , path2path3 ve path4 bileşenlerini birleştirir pathve henüz yoksa yol bileşenlerinden herhangi biri arasına bir dizin ayırıcı karakteri ekler. , path2path3 veya path4 bağımsız değişkenlerinden herhangi birinin path1uzunluğu sıfırsa, yöntem kalan bağımsız değişkenleri birleştirir. Sonuçta elde edilen birleştirilmiş dizenin uzunluğu sıfırsa, yöntemi döndürür String.Empty.

Veya hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse veya path3path2 bitersepath1, Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, veya mutlak path3path4 bir yolsapath2, Join yöntem yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Şunlara uygulanır

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

Dört yol bileşenini tek bir yolda birleştirir.

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

Parametreler

path1
ReadOnlySpan<Char>

Birleştirmek için ilk yolu içeren bir karakter aralığı.

path2
ReadOnlySpan<Char>

Birleştirmek için ikinci yolu içeren karakter aralığı.

path3
ReadOnlySpan<Char>

Birleştirmenin üçüncü yolunu içeren bir karakter aralığı.

path4
ReadOnlySpan<Char>

Birleştirmenin dördüncü yolunu içeren karakter aralığı.

Döndürülenler

Birleştirilmiş yol.

Açıklamalar

Bu yöntem, , path2path3 ve path4 bileşenlerini birleştirir pathve henüz yoksa yol bileşenlerinden herhangi biri arasına bir dizin ayırıcı karakteri ekler. Length, path3path2veya path4 bağımsız değişkenlerinden herhangi birinin path1değeri sıfırsa, yöntem kalan bağımsız değişkenleri birleştirir. ReadOnlySpan<T>.Length Tüm bileşenlerin sıfır olması durumunda yöntemi döndürürString.Empty.

Veya hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse veya path3path2 bitersepath1, Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, veya mutlak path3path4 bir yolsapath2, Join yöntem yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Şunlara uygulanır

Join(String, String, String)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

Üç yolu tek bir yolda birleştirir.

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

Parametreler

path1
String

Katılmanın ilk yolu.

path2
String

Katılmanın ikinci yolu.

path3
String

Katılmanın üçüncü yolu.

Döndürülenler

Birleştirilmiş yol.

Açıklamalar

Bu yöntem, , path2ve path3 bileşenlerini birleştirir pathve henüz yoksa yol bileşenlerinden herhangi biri arasına bir dizin ayırıcı karakteri ekler. veya bağımsız değişkenlerinden herhangi birinin path1path2path3 uzunluğu sıfırsa, yöntem kalan bağımsız değişkenleri birleştirir. Sonuçta elde edilen birleştirilmiş dizenin uzunluğu sıfırsa, yöntemi döndürür String.Empty.

Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse veya path2 bitersepath1, Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, veya path3 mutlak bir yolsa path2 yöntem, Join yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Şunlara uygulanır

Join(String[])

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

Bir yol dizisini tek bir yol olarak birleştirir.

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

Parametreler

paths
String[]

Bir yol dizisi.

Döndürülenler

Birleştirilmiş yol.

Açıklamalar

Bu yöntem, içindeki paths tüm dizeleri birleştirir ve henüz yoksa yol bileşenlerinden herhangi biri arasına bir dizin ayırıcı karakteri ekler. Length içindeki paths yollardan herhangi biri sıfırsa, yöntemi kalan bağımsız değişkenleri birleştirir. Sonuçta elde edilen birleştirilmiş dizenin uzunluğu sıfırsa, yöntemi döndürür String.Empty.

içindeki pathsyollardan biri, sonuncusu dışında, hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse, Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen yolu ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Diğer bir ifadeyle, ilk yol dışında içindeki pathsyollardan herhangi biri mutlak bir yolsa, Join yöntem yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Şunlara uygulanır

Join(String, String)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

İki yolu tek bir yolda birleştirir.

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

Parametreler

path1
String

Katılmanın ilk yolu.

path2
String

Katılmanın ikinci yolu.

Döndürülenler

Birleştirilmiş yol.

Açıklamalar

Bu yöntem, yol bileşenlerinden herhangi biri henüz yoksa dizin ayırıcı karakterini birleştirir path ve path2 ekler. veya path2 uzunluğu path1 sıfırsa, yöntem kalan bağımsız değişkeni birleştirir. Sonuçta elde edilen birleştirilmiş dizenin uzunluğu sıfırsa, yöntemi döndürür String.Empty.

Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse path1 , Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, mutlak bir yolsa path2 yöntem, Join yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Şunlara uygulanır

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

İki yol bileşenini tek bir yolda birleştirir.

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

Parametreler

path1
ReadOnlySpan<Char>

Birleştirmek için ilk yolu içeren bir karakter aralığı.

path2
ReadOnlySpan<Char>

Birleştirmek için ikinci yolu içeren karakter aralığı.

Döndürülenler

Birleştirilmiş yollar.

Örnekler

Aşağıdaki örnekte ve Path.Combine(String, String) yöntemleri tarafından Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) döndürülen yollardaki fark gösterilmektedir. İlk dize bir sürücü ve kök dizin içeren tam yol, ikincisi ise ilk yoldan gelen göreli bir yol olduğunda, iki yöntem aynı sonuçları üretir. İkinci ve üçüncü yöntem çağrılarında ShowPathInformation , iki yöntem tarafından döndürülen dizeler birbirinden ayrılır. İkinci yöntem çağrısında, ilk dize bağımsız değişkeni bir sürücü, ikincisi ise kök dizinidir. Join yöntemi iki dizeyi birleştirir ve yinelenen yol ayırıcılarını korur. Combine yöntemi sürücüyü bırakır ve geçerli sürücüde kök dizinini döndürür. Uygulamanın geçerli sürücüsü C:\ ise ve dize dizindeki bir dosyaya veya dosyalara erişmek için kullanılırsa, D: yerine C: öğesine erişilir. Son olarak, için üçüncü çağrıdaki ShowPathInformation her iki bağımsız değişkenin de kökü oluşturulduğundan, Join yöntem yalnızca bunları ekleyerek duyarsız olmayan bir dosya yolu oluştururken Combine yöntemi ilk dizeyi atar ve ikincisini döndürür. Dosya erişimi için bu dizeyi kullanmak, uygulamaya hassas dosyalara istenmeyen erişim verebilir.

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/'

Açıklamalar

Bu yöntem yalnızca öğesinin pathpath2 sonunda path1 veya başında path2yoksa iki yol bileşeni arasında bir dizin ayırıcı karakteri ekler ve birleştirir. Length veya path2 değeri path1 sıfırsa, yöntemi diğer yolu döndürür. her ikisi de Lengthpath1path2 sıfırsa, yöntemi döndürür.String.Empty

Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse path1 , Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, mutlak bir yolsapath2, Join yöntem atılmaz path1 ve yöntemin Combine döndüreceği gibi dönmezpath2.) Aşağıdaki örnekte, iki yöntem tarafından döndürülen yollardaki fark gösterilmektedir. kaynağı path2 kullanıcı girişiyse yöntemi, Combine bir kullanıcının uygulamanın erişilebilir hale getirmek amaçlamadığı bir dosya sistemi kaynağına (örneğin C:/Users/User1/Documents/Financial/ gibi) erişmesini mümkün kılar.

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Ayrıca bkz.

Şunlara uygulanır

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Kaynak:
Path.cs
Kaynak:
Path.cs
Kaynak:
Path.cs

Üç yol bileşenini tek bir yolda birleştirir.

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

Parametreler

path1
ReadOnlySpan<Char>

Birleştirmek için ilk yolu içeren bir karakter aralığı.

path2
ReadOnlySpan<Char>

Birleştirmek için ikinci yolu içeren karakter aralığı.

path3
ReadOnlySpan<Char>

Birleştirmenin üçüncü yolunu içeren bir karakter aralığı.

Döndürülenler

Birleştirilmiş yol.

Örnekler

Aşağıdaki örnekte ve Path.Combine(String, String, String) yöntemleri tarafından Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) döndürülen yollardaki fark gösterilmektedir. İlk dize bir sürücü ve kök dizin içeren tam yol, ikincisi ise ilk yoldan gelen göreli bir yol olduğunda, iki yöntem aynı sonuçları üretir. İkinci ve üçüncü yöntem çağrılarında ShowPathInformation , iki yöntem tarafından döndürülen dizeler birbirinden ayrılır. İkinci yöntem çağrısında, ilk dize bağımsız değişkeni bir sürücü, ikincisi ise kök dizinidir. Join yöntemi iki dizeyi birleştirir ve yinelenen yol ayırıcılarını korur. yöntemine yapılan GetFullPath bir çağrı, yinelemeyi ortadan kaldırır. Combine yöntemi sürücüyü bırakır ve geçerli sürücüde kök dizinini döndürür. Uygulamanın geçerli sürücüsü C:\ ise ve dize dizindeki bir dosyaya veya dosyalara erişmek için kullanılırsa, D: yerine C: öğesine erişilir. Son olarak, için üçüncü çağrıdaki ShowPathInformation son bağımsız değişkenin kökü oluşturulduğundan, Join yöntem bunu ilk iki bağımsız değişkene ekleyerek duyarsız olmayan bir dosya yolu oluştururken Combine , yöntem ilk iki dizeyi atar ve üçüncüünü döndürür. Dosya erişimi için bu dizeyi kullanmak, uygulamaya hassas dosyalara istenmeyen erişim verebilir.

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'

Açıklamalar

Bu yöntem, , path2ve path3 bileşenlerini birleştirir pathve henüz yoksa yol bileşenlerinden herhangi biri arasına bir dizin ayırıcı karakteri ekler. Length, path2veya path3 bağımsız değişkenlerinden herhangi birinin path1değeri sıfırsa, yöntem kalan bağımsız değişkenleri birleştirir. ReadOnlySpan<T>.Length Tüm bileşenlerin sıfır olması durumunda yöntemi döndürürString.Empty.

Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse veya path2 bitersepath1, Join yöntem özgün yol ayırıcı karakterini korur ve desteklenen karakteri ekler. Bu sorun, Unix tabanlı sistemlerde yol ayırıcı olarak tanınmayan Windows ters eğik çizgi ("\") karakterini kullanan sabit kodlu yollarda ortaya çıkar. Bu sorunu geçici olarak çözmek için şunları yapabilirsiniz:

yönteminden Combine farklı olarak Join , yöntem döndürülen yolun kökünü oluşturma girişiminde bulunur. (Yani, veya path3 mutlak bir yolsa path2 yöntem, Join yöntemin yaptığı gibi Combine önceki yolları atmaz.)

Dizin ve dosya adları için geçersiz karakterlerin tümü yöntemi tarafından Join kabul edilemez olarak yorumlanmaz, çünkü bu karakterleri arama joker karakterleri için kullanabilirsiniz. Örneğin, Path.Join("c:\\", "temp", "*.txt") bir dosya oluşturulurken geçersiz olsa da, arama dizesi olarak geçerlidir. Join Bu nedenle yöntemi bunu başarıyla yorumlar.

Ayrıca bkz.

Şunlara uygulanır