Path.Combine Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dizeleri bir yolda birleştirir.
Aşırı Yüklemeler
Combine(ReadOnlySpan<String>) |
Dizelerin bir aralığını bir yol halinde birleştirir. |
Combine(String[]) |
Dize dizisini bir yol halinde birleştirir. |
Combine(String, String) |
İki dizeyi bir yolda birleştirir. |
Combine(String, String, String) |
Üç dizeyi bir yolda 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ştirmeye yöneliktir. 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.
Combine
yöntemine alternatif olarak, Join veya TryJoin yöntemlerini (.NET Framework'te kullanılamaz) kullanmayı 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. Bu durumda değilse ve özellikle de sonraki bağımsız değişkenler kullanıcı tarafından giriş yapılan dizelerse, bunun yerine Join veya TryJoin yöntemini çağırın.
Combine(ReadOnlySpan<String>)
Dizelerin bir aralığını bir yol halinde birleştirir.
public:
static System::String ^ Combine(ReadOnlySpan<System::String ^> paths);
public static string Combine (scoped ReadOnlySpan<string> paths);
static member Combine : ReadOnlySpan<string> -> string
Public Shared Function Combine (paths As ReadOnlySpan(Of String)) As String
Parametreler
- paths
- ReadOnlySpan<String>
Yolun bölümlerinin yayılma alanı.
Döndürülenler
Birleştirilmiş yollar.
Şunlara uygulanır
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
2.1'den eski .NET Framework ve .NET Core sürümleri: Dizideki dizelerden biri, GetInvalidPathChars()içinde tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.
Dizideki dizelerden biri 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
, yolun birleştirilecek bölümlerinin bir dizisi olmalıdır. Sonraki yollardan biri mutlak bir yolsa, birleştirme işlemi bu mutlak yoldan başlayarak sıfırlanır ve önceki tüm birleşik yollar atılır.
paths
içindeki herhangi bir öğe sürücü değilse ve DirectorySeparatorChar veya AltDirectorySeparatorChar karakteriyle bitmiyorsa, Combine
yöntemi bu öğeyle sonrakinin arasına DirectorySeparatorChar bir karakter ekler. Öğe hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse, Combine
yönteminin ö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
Birleştirilmiş yoldan sıfır uzunluklu dizeler 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 Combine
yöntemi tarafından kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt")
dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak arama dizesi olarak geçerlidir. Bu nedenle, Combine
yöntemi tarafından 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 path2
döndürür.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: path1
veya path2
, GetInvalidPathChars()içinde tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.
path1
veya path2
null
.
Örnekler
Aşağıdaki örnekte, Windows'da Combine
yönteminin 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:^*&)(_=@#'\\^.*(.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:^*&)(_=@#'\\^.*(.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:^*&)(_=@#'\^.*(.txt' and 'subdir\file.txt', the result is:
// 'c:^*&)(_=@#'\^.*(.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:^*&)(_=@#'\\^.*(.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:^*&)(_=@#'\^.*(.txt' and 'subdir\file.txt', the result is:
' 'c:^*&)(_=@#'\^.*(.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
path1
bir sürücü başvurusu değilse (yani, "C:" veya "D:") ve DirectorySeparatorChar, AltDirectorySeparatorCharveya VolumeSeparatorChariçinde tanımlandığı gibi geçerli bir ayırıcı karakterle bitmezse, birleştirmeden önce DirectorySeparatorCharpath1
eklenir.
path1
hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse, Combine
yönteminin ö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
path2
bir kök içermiyorsa (örneğin, path2
ayırıcı karakterle veya sürücü belirtimiyle başlamazsa), sonuç iki yolun kesişen ayırıcı karakterle bir araya toplanmasıdır.
path2
bir kök içeriyorsa path2
döndürülür.
Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2
boşluk (örneğin, " \file.txt ") içeriyorsa, Combine yöntemi yalnızca path2
döndürmek yerine path1
path2
ekler.
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 Combine
yöntemi tarafından kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt")
dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak arama dizesi olarak geçerlidir. Bu nedenle, Combine
yöntemi tarafından başarıyla yorumlanır.
Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.
Ayrıca bkz.
- Windows sistemlerinde dosya yolu biçimleri
- Dosya ve Akış G/Ç
- Nasıl yapılır: Dosya Metin Okuma
- Nasıl yapılır: Dosya Metin Yazma
Şunlara uygulanır
Combine(String, String, String)
- Kaynak:
- Path.cs
- Kaynak:
- Path.cs
- Kaynak:
- Path.cs
Üç dizeyi bir yolda 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
, path2
veya path3
, GetInvalidPathChars()içinde tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.
path1
, path2
veya path3
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").
path2
veya path3
de mutlak bir yolsa, birleştirme işlemi daha önce birleştirilen tüm yolları atar ve bu mutlak yola sıfırlar.
Birleştirilmiş yoldan sıfır uzunluklu dizeler atlanır.
path1
veya path2
bir sürücü başvurusu değilse (yani, "C:" veya "D:") ve DirectorySeparatorChar, AltDirectorySeparatorCharveya VolumeSeparatorChar'de tanımlandığı gibi geçerli bir ayırıcı karakterle bitmezse, birleştirmeden önce DirectorySeparatorCharpath1
veya path2
eklenir.
path1
veya path2
hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse, Combine
yönteminin ö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
path2
bir kök içermiyorsa (örneğin, path2
ayırıcı karakterle veya sürücü belirtimiyle başlamazsa), sonuç iki yolun kesişen ayırıcı karakterle bir araya toplanmasıdır.
path2
bir kök içeriyorsa path2
döndürülür.
Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2
boşluk içeriyorsa (örneğin, " \file.txt "), Combine yöntemi path1
path2
ekler.
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 Combine
yöntemi tarafından kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt")
dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak arama dizesi olarak geçerlidir. Bu nedenle, Combine
yöntemi tarafından 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
, path3
veya path4
, GetInvalidPathChars()içinde tanımlanan geçersiz karakterlerden birini veya daha fazlasını içerir.
path1
, path2
, path3
veya path4
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ırlanır.
Birleştirilmiş yoldan sıfır uzunluklu dizeler atlanır.
path1
, path2
veya path3
bir sürücü başvurusu değilse (yani, "C:" veya "D:") ve DirectorySeparatorChar, AltDirectorySeparatorCharveya VolumeSeparatorChariçinde tanımlandığı gibi geçerli bir ayırıcı karakterle bitmezse, birleştirmeden önce DirectorySeparatorChar eklenir.
path1
, path2
veya path3
hedef platform için uygun olmayan bir yol ayırıcı karakteriyle biterse, Combine
yönteminin ö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\
path2
bir kök içermiyorsa (örneğin, path2
ayırıcı karakterle veya sürücü belirtimiyle başlamazsa), sonuç iki yolun kesişen ayırıcı karakterle bir araya toplanmasıdır.
path2
bir kök içeriyorsa path2
döndürülür.
Parametreler boşluk varsa ayrıştırılmaz. Bu nedenle, path2
boşluk içeriyorsa (örneğin, " \file.txt "), Combine yöntemi path1
path2
ekler.
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 Combine
yöntemi tarafından kabul edilemez olarak yorumlanmaz. Örneğin, Path.Combine("c:\\", "*.txt")
dosyadan bir dosya oluşturursanız geçersiz olabilir, ancak arama dizesi olarak geçerlidir. Bu nedenle, Combine
yöntemi tarafından başarıyla yorumlanır.