Path.Combine Yöntem

Tanım

Dizeleri bir yol halinde birleştirir.

Aşırı Yüklemeler

Combine(String[])

Dize dizisini bir yol halinde birleştirir.

Combine(String, String)

İki dizeyi bir yolda birleştirir.

Combine(String, String, String)

Üç dizeyi bir yol halinde birleştirir.

Combine(String, String, String, String)

Dört dizeyi bir yolda birleştirir.

Açıklamalar

Bu yöntem, tek tek dizeleri bir dosya yolunu temsil eden tek bir dizede birleştirmek için tasarlanmıştır. Ancak, ilk dışındaki bir bağımsız değişken köklü yol içeriyorsa, önceki yol bileşenleri yoksayılır ve döndürülen dize bu kök yol bileşeniyle başlar. yöntemine Combine alternatif olarak veya TryJoin yöntemlerini kullanmayı Join göz önünde bulundurun.

Önemli

Bu yöntem, ilk bağımsız değişkenin mutlak bir yol olduğunu ve aşağıdaki bağımsız değişkenin veya bağımsız değişkenlerin göreli yollar olduğunu varsayar. Böyle bir durum söz konusu değilse ve özellikle de sonraki bağımsız değişkenler kullanıcı tarafından giriş yapılan dizelerse, bunun yerine veya TryJoin yöntemini çağırınJoin.

Combine(String[])

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

Dize dizisini bir yol halinde birleştirir.

public:
 static System::String ^ Combine(... cli::array <System::String ^> ^ paths);
public static string Combine (params string[] paths);
static member Combine : string[] -> string
Public Shared Function Combine (ParamArray paths As String()) As String

Parametreler

paths
String[]

Yolun bölümlerinin dizisi.

Döndürülenler

Birleştirilmiş yollar.

Özel durumlar

.NET Framework ve .NET Core sürümleri 2.1'den eski: Dizideki dizelerden biri içinde GetInvalidPathChars()tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.

Dizideki dizelerden biri şeklindedir null.

Örnekler

Aşağıdaki örnek, bir dize dizisini bir yol halinde birleştirir.

string[] paths = {@"d:\archives", "2001", "media", "images"};
string fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);
Dim paths As String() = {"d:\archives", "2001", "media", "images"}
Dim fullPath As String = Path.Combine(paths)
Console.WriteLine(fullPath)

Açıklamalar

paths birleştirilecek yolun bölümlerinin dizisi olmalıdır. Sonraki yollardan biri mutlak bir yolsa, birleştirme işlemi bu mutlak yol ile başlayarak sıfırlanır ve önceki tüm birleşik yollar atılır.

Içindeki ancak sonuncusundaki paths herhangi bir öğe bir sürücü değilse ve veya AltDirectorySeparatorChar karakteriyle bitmiyorsa, Combine yöntem bu öğe ile DirectorySeparatorChar sonraki arasına bir DirectorySeparatorChar karakter ekler. Öğenin hedef platform için uygun olmayan bir yol ayırıcı karakteriyle bitmesi durumunda yöntemin Combine özgün yol ayırıcı karakterini koruduğunu ve desteklenen bir karakteri eklediğini unutmayın. Aşağıdaki örnek, yol ayırıcı karakteri olarak ters eğik çizgi kullanıldığında Windows ve Unix tabanlı sistemlerdeki sonucu karşılaştırır.

string[] paths = {@"d:\archives", "2001", "media", "images"};
string fullPath = Path.Combine(paths);
Console.WriteLine(fullPath);            

paths = new string[] {@"d:\archives\", @"2001\", "media", "images"};
fullPath = Path.Combine(paths);
Console.WriteLine(fullPath); 

paths = new string[] {"d:/archives/", "2001/", "media", "images"};
fullPath = Path.Combine(paths);
Console.WriteLine(fullPath); 
// The example displays the following output if run on a Windows system:
//    d:\archives\2001\media\images
//    d:\archives\2001\media\images
//    d:/archives/2001/media\images
//
// The example displays the following output if run on a Unix-based system:
//    d:\archives/2001/media/images
//    d:\archives\/2001\/media/images
//    d:/archives/2001/media/images
Dim paths As String() = { "d:\archives", "2001", "media", "images" }
Dim fullPath As String = Path.Combine(paths)
Console.WriteLine(fullPath)            

paths = { "d:\archives\", "2001\", "media", "images" }
fullPath = Path.Combine(paths)
Console.WriteLine(fullPath) 

paths = { "d:/archives/", "2001/", "media", "images" }
fullPath = Path.Combine(paths)
Console.WriteLine(fullPath) 
' The example displays the following output if run on a Windows system:
'    d:\archives\2001\media\images
'    d:\archives\2001\media\images
'    d:/archives/2001/media\images
'
' The example displays the following output if run on a Linux system:
'    d:\archives/2001/media/images
'    d:\archives\/2001\/media/images
'    d:/archives/2001/media/images

Sıfır uzunluklu dizeler birleştirilmiş yoldan atlanır.

Parametreler boşluk varsa ayrıştırılmaz.

2.1'den eski .NET Framework ve .NET Core sürümleri: Bu karakterleri arama joker karakterleri için kullanabileceğiniz için, dizin ve dosya adları için tüm geçersiz karakterler yöntemi tarafından Combine kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt") dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak bu bir arama dizesi olarak geçerlidir. Bu nedenle yöntemi tarafından Combine başarıyla yorumlanır.

Ayrıca bkz.

Şunlara uygulanır

Combine(String, String)

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

İki dizeyi bir yolda birleştirir.

public:
 static System::String ^ Combine(System::String ^ path1, System::String ^ path2);
public static string Combine (string path1, string path2);
static member Combine : string * string -> string
Public Shared Function Combine (path1 As String, path2 As String) As String

Parametreler

path1
String

Birleştirecek ilk yol.

path2
String

Birleştirecek ikinci yol.

Döndürülenler

Birleştirilmiş yollar. Belirtilen yollardan biri sıfır uzunluklu bir dizeyse, bu yöntem diğer yolu döndürür. path2 Mutlak bir yol içeriyorsa, bu yöntem döndürürpath2.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path1 veya path2 içinde GetInvalidPathChars()tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.

path1 veya path2 şeklindedir null.

Örnekler

Aşağıdaki örnekte Windows'da yönteminin Combine kullanılması gösterilmektedir.

using namespace System;
using namespace System::IO;
void CombinePaths( String^ p1, String^ p2 )
{
   try
   {
      String^ combination = Path::Combine( p1, p2 );
      Console::WriteLine( "When you combine '{0}' and '{1}', the result is: {2}'{3}'", p1, p2, Environment::NewLine, combination );
   }
   catch ( Exception^ e ) 
   {
      if (p1 == nullptr)
         p1 = "nullptr";
      if (p2 == nullptr)
         p2 = "nullptr";
      Console::WriteLine( "You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment::NewLine, e->Message );
   }

   Console::WriteLine();
}

int main()
{
   String^ path1 = "c:\\temp";
   String^ path2 = "subdir\\file.txt";
   String^ path3 = "c:\\temp.txt";
   String^ path4 = "c:^*&)(_=@#'\\^&#2.*(.txt";
   String^ path5 = "";
   String^ path6 = nullptr;
   CombinePaths( path1, path2 );
   CombinePaths( path1, path3 );
   CombinePaths( path3, path2 );
   CombinePaths( path4, path2 );
   CombinePaths( path5, path2 );
   CombinePaths( path6, path2 );
}
using System;
using System.IO;

public class ChangeExtensionTest
{
    public static void Main()
    {
        string path1 = "c:\\temp";
        string path2 = "subdir\\file.txt";
        string path3 = "c:\\temp.txt";
        string path4 = "c:^*&)(_=@#'\\^&#2.*(.txt";
        string path5 = "";

        CombinePaths(path1, path2);
        CombinePaths(path1, path3);
        CombinePaths(path3, path2);
        CombinePaths(path4, path2);
        CombinePaths(path5, path2);
    }

    private static void CombinePaths(string p1, string p2)
    {
        string combination = Path.Combine(p1, p2);

        Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'",
                    p1, p2, Environment.NewLine, combination);

        Console.WriteLine();
    }
}
// This code produces output similar to the following:
//
// When you combine 'c:\temp' and 'subdir\file.txt', the result is:
// 'c:\temp\subdir\file.txt'
//
// When you combine 'c:\temp' and 'c:\temp.txt', the result is:
// 'c:\temp.txt'
//
// When you combine 'c:\temp.txt' and 'subdir\file.txt', the result is:
// 'c:\temp.txt\subdir\file.txt'
//
// When you combine 'c:^*&)(_=@#'\^&#2.*(.txt' and 'subdir\file.txt', the result is:
// 'c:^*&)(_=@#'\^&#2.*(.txt\subdir\file.txt'
//
// When you combine '' and 'subdir\file.txt', the result is:
// 'subdir\file.txt'
Imports System.IO

Public Class ChangeExtensionTest
    
    
    Public Shared Sub Main()
        Dim path1 As String = "c:\temp"
        Dim path2 As String = "subdir\file.txt"
        Dim path3 As String = "c:\temp.txt"
        Dim path4 As String = "c:^*&)(_=@#'\\^&#2.*(.txt"
        Dim path5 As String = ""
        Dim path6 As String = Nothing

        CombinePaths(path1, path2)
        CombinePaths(path1, path3)
        CombinePaths(path3, path2)
        CombinePaths(path4, path2)
        CombinePaths(path5, path2)
        CombinePaths(path6, path2)
    End Sub

    Private Shared Sub CombinePaths(p1 As String, p2 As String)
        
        Try
            Dim combination As String = Path.Combine(p1, p2)
            
            Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'", p1, p2, Environment.NewLine, combination)
        Catch e As Exception
            If p1 = Nothing Then
                p1 = "Nothing"
            End If
            If p2 = Nothing Then
                p2 = "Nothing"
            End If
            Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment.NewLine, e.Message)
        End Try
        
        Console.WriteLine()
    End Sub
End Class
' This code produces output similar to the following:
'
' When you combine 'c:\temp' and 'subdir\file.txt', the result is: 
' 'c:\temp\subdir\file.txt'
' 
' When you combine 'c:\temp' and 'c:\temp.txt', the result is: 
' 'c:\temp.txt'
' 
' When you combine 'c:\temp.txt' and 'subdir\file.txt', the result is: 
' 'c:\temp.txt\subdir\file.txt'
' 
' When you combine 'c:^*&)(_=@#'\^&#2.*(.txt' and 'subdir\file.txt', the result is: 
' 'c:^*&)(_=@#'\^&#2.*(.txt\subdir\file.txt'
' 
' When you combine '' and 'subdir\file.txt', the result is: 
' 'subdir\file.txt'
' 
' You cannot combine '' and 'subdir\file.txt' because: 
' Value cannot be null.
' Parameter name: path1

Açıklamalar

Bir sürücü başvurusu değilse path1 ("C:" veya "D:") ve içinde tanımlandığı DirectorySeparatorChargibi geçerli bir ayırıcı karakterle bitmezse, DirectorySeparatorCharAltDirectorySeparatorCharVolumeSeparatorCharbirleştirmeden önce sonuna eklenir.path1 Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse path1 , Combine yöntemin özgün yol ayırıcı karakterini koruduğunu ve desteklenen bir karakteri eklediğini unutmayın. Aşağıdaki örnek, yol ayırıcı karakteri olarak ters eğik çizgi kullanıldığında Windows ve Unix tabanlı sistemlerdeki sonucu karşılaştırır.

var result = Path.Combine(@"C:\Pictures\", "Saved Pictures"); 
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
//    C:\Pictures\Saved Pictures
//
// The example displays the following output if run on a Unix-based system:
//    C:\Pictures\/Saved Pictures
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures") 
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
'    C:\Pictures\Saved Pictures
'
' The example displays the following output if run on a Unix-based system:
'    C:\Pictures\/Saved Pictures

Kök içermiyorsa path2 (örneğin, ayırıcı karakter veya sürücü belirtimi ile başlamıyorsa path2 ), sonuç, ara ayırıcı karakterle iki yolun birleştirilmiş bir sonucudur. Kök path2 içeriyorsa döndürülür path2 .

Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2 boşluk içeriyorsa (örneğin, " \file.txt "), Combine yöntemi yalnızca path2döndürmek yerine öğesine path1 eklenirpath2.

2.1'den eski .NET Framework ve .NET Core sürümleri: Bu karakterleri arama joker karakterleri için kullanabileceğiniz için, dizin ve dosya adları için tüm geçersiz karakterler yöntemi tarafından Combine kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt") dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak bu bir arama dizesi olarak geçerlidir. Bu nedenle yöntemi tarafından Combine başarıyla yorumlanır.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Ayrıca bkz.

Şunlara uygulanır

Combine(String, String, String)

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

Üç dizeyi bir yol halinde birleştirir.

public:
 static System::String ^ Combine(System::String ^ path1, System::String ^ path2, System::String ^ path3);
public static string Combine (string path1, string path2, string path3);
static member Combine : string * string * string -> string
Public Shared Function Combine (path1 As String, path2 As String, path3 As String) As String

Parametreler

path1
String

Birleştirecek ilk yol.

path2
String

Birleştirecek ikinci yol.

path3
String

Birleştirecek üçüncü yol.

Döndürülenler

Birleştirilmiş yollar.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path1, path2veya path3 içinde GetInvalidPathChars()tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.

path1, path2veya path3 şeklindedir null.

Örnekler

Aşağıdaki örnek üç yolu birleştirir.

string p1 = @"d:\archives\";
string p2 = "media";
string p3 = "images";
string combined = Path.Combine(p1, p2, p3);
Console.WriteLine(combined);
Dim p1 As String = "d:\archives\"
Dim p2 As String = "media"
Dim p3 As String = "images"
Dim combined As String = Path.Combine(p1, p2, p3)
Console.WriteLine(combined)

Açıklamalar

path1 mutlak bir yol olmalıdır (örneğin, "d:\archives" veya "\\archives\public"). Veya path3 aynı zamanda mutlak bir yolsapath2, birleştirme işlemi daha önce birleştirilen tüm yolları atar ve bu mutlak yola sıfırlar.

Sıfır uzunluklu dizeler birleştirilmiş yoldan atlanır.

Veya bir sürücü başvurusu değilse path1 (yani, "C:" veya "D:") ve içinde tanımlandığı DirectorySeparatorChargibi geçerli bir ayırıcı karakterle bitmezse, AltDirectorySeparatorCharDirectorySeparatorCharVolumeSeparatorCharbirleştirmeye path1 veya path2 birleştirmeden önce eklenir.path2 Hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse veya path2 bitersepath1, yöntemin Combine özgün yol ayırıcı karakterini koruduğunu ve desteklenen bir karakteri eklediğini unutmayın. Aşağıdaki örnek, yol ayırıcı karakteri olarak ters eğik çizgi kullanıldığında Windows ve Unix tabanlı sistemlerdeki sonucu karşılaştırır.

var result = Path.Combine(@"C:\Pictures\", @"Saved Pictures\", "2019"); 
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
//    C:\Pictures\Saved Pictures\2019
//
// The example displays the following output if run on a Unix-based system:
//    C:\Pictures\/Saved Pictures\/2019
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures\", "2019") 
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
'    C:\Pictures\Saved Pictures\2019
'
' The example displays the following output if run on a Unix-based system:
'    C:\Pictures\/Saved Pictures\/2019

Kök içermiyorsa path2 (örneğin, ayırıcı karakter veya sürücü belirtimi ile başlamıyorsa path2 ), sonuç, ara ayırıcı karakterle iki yolun birleştirilmiş bir sonucudur. Kök path2 içeriyorsa döndürülür path2 .

Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2 boşluk içeriyorsa (örneğin, " \file.txt "), Combine yöntemi sonuna path1eklenirpath2.

2.1'den eski .NET Framework ve .NET Core sürümleri: Bu karakterleri arama joker karakterleri için kullanabileceğiniz için, dizin ve dosya adları için tüm geçersiz karakterler yöntemi tarafından Combine kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt") dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak bu bir arama dizesi olarak geçerlidir. Bu nedenle yöntemi tarafından Combine başarıyla yorumlanır.

Ayrıca bkz.

Şunlara uygulanır

Combine(String, String, String, String)

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

Dört dizeyi bir yolda birleştirir.

public:
 static System::String ^ Combine(System::String ^ path1, System::String ^ path2, System::String ^ path3, System::String ^ path4);
public static string Combine (string path1, string path2, string path3, string path4);
static member Combine : string * string * string * string -> string
Public Shared Function Combine (path1 As String, path2 As String, path3 As String, path4 As String) As String

Parametreler

path1
String

Birleştirecek ilk yol.

path2
String

Birleştirecek ikinci yol.

path3
String

Birleştirecek üçüncü yol.

path4
String

Birleştirecek dördüncü yol.

Döndürülenler

Birleştirilmiş yollar.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path1, path2, path3veya path4 içinde GetInvalidPathChars()tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.

path1, path2, path3veya path4 şeklindedir null.

Örnekler

Aşağıdaki örnek dört yolu birleştirir.

string path1 = @"d:\archives\";
string path2 = "2001";
string path3 = "media";
string path4 = "images";
string combinedPath = Path.Combine(path1, path2, path3, path4);
Console.WriteLine(combinedPath);
Dim path1 As String = "d:\archives\"
Dim path2 As String = "2001"
Dim path3 As String = "media"
Dim path4 As String = "imaged"
Dim combinedPath As String = Path.Combine(path1, path2, path3, path4)
Console.WriteLine(combined)

Açıklamalar

path1 mutlak bir yol olmalıdır (örneğin, "d:\archives" veya "\\archives\public"). Sonraki yollardan biri de mutlak bir yolsa, birleştirme işlemi daha önce birleştirilen tüm yolları atar ve bu mutlak yola sıfırlar.

Sıfır uzunluklu dizeler birleştirilmiş yoldan atlanır.

, path2veya bir sürücü başvurusu değilse path1(yani, "C:" veya "D:") ve içinde tanımlandığı AltDirectorySeparatorCharDirectorySeparatorChargibi geçerli bir ayırıcı karakterle bitmezse, DirectorySeparatorCharVolumeSeparatorCharbirleştirmeden önce sonuna path3 eklenir. , path2veya path3 hedef platform için uygun olmayan bir yol ayırıcı karakteriyle bitersepath1, yöntemin Combine özgün yol ayırıcı karakterini koruduğunu ve desteklenen bir karakteri eklediğini unutmayın. Aşağıdaki örnek, yol ayırıcı karakteri olarak ters eğik çizgi kullanıldığında Windows ve Unix tabanlı sistemlerdeki sonucu karşılaştırır.

var result = Path.Combine(@"C:\Pictures\", @"Saved Pictures\", @"2019\", @"Jan\"); 
Console.WriteLine(result);
// The example displays the following output if run on a Windows system:
//    C:\Pictures\Saved Pictures\2019\Jan\
//
// The example displays the following output if run on a Unix-based system:
//    C:\Pictures\Saved Pictures\2019\Jan\
Dim result = Path.Combine("C:\Pictures\", "Saved Pictures\", "2019\", "Jan\") 
Console.WriteLine(result)
' The example displays the following output if run on a Windows system:
'    C:\Pictures\Saved Pictures\2019\Jan\
'
' The example displays the following output if run on a Unix-based system:
'    C:\Pictures\Saved Pictures\2019\Jan\

Kök içermiyorsa path2 (örneğin, ayırıcı karakter veya sürücü belirtimi ile başlamıyorsa path2 ), sonuç, ara ayırıcı karakterle iki yolun birleştirilmiş bir sonucudur. Kök path2 içeriyorsa döndürülür path2 .

Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2 boşluk içeriyorsa (örneğin, " \file.txt "), Combine yöntemi sonuna path1eklenirpath2.

2.1'den eski .NET Framework ve .NET Core sürümleri: Bu karakterleri arama joker karakterleri için kullanabileceğiniz için, dizin ve dosya adları için tüm geçersiz karakterler yöntemi tarafından Combine kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt") dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak bu bir arama dizesi olarak geçerlidir. Bu nedenle yöntemi tarafından Combine başarıyla yorumlanır.

Ayrıca bkz.

Şunlara uygulanır