Path.Combine Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Kombiniert Zeichenfolgen in einem Pfad.
Überlädt
Combine(ReadOnlySpan<String>) |
Kombiniert eine Spanne von Zeichenfolgen in einem Pfad. |
Combine(String[]) |
Kombiniert ein Array von Zeichenfolgen in einem Pfad. |
Combine(String, String) |
Kombiniert zwei Zeichenfolgen in einem Pfad. |
Combine(String, String, String) |
Kombiniert drei Zeichenfolgen in einem Pfad. |
Combine(String, String, String, String) |
Kombiniert vier Zeichenfolgen in einem Pfad. |
Hinweise
Diese Methode soll einzelne Zeichenfolgen in eine einzelne Zeichenfolge verketten, die einen Dateipfad darstellt. Wenn jedoch ein anderes Argument als der erste einen wurzeligen Pfad enthält, werden alle vorherigen Pfadkomponenten ignoriert, und die zurückgegebene Zeichenfolge beginnt mit dieser gewurzelten Pfadkomponente. Als Alternative zur Combine
-Methode sollten Sie die methoden Join oder TryJoin verwenden.
Wichtig
Bei dieser Methode wird davon ausgegangen, dass das erste Argument ein absoluter Pfad ist und dass das folgende Argument oder argumente relative Pfade sind. Wenn dies nicht der Fall ist, und insbesondere, wenn nachfolgende Argumente vom Benutzer eingegeben werden, rufen Sie stattdessen die Join- oder TryJoin-Methode auf.
Combine(ReadOnlySpan<String>)
Kombiniert eine Spanne von Zeichenfolgen in einem Pfad.
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
Parameter
- paths
- ReadOnlySpan<String>
Eine Spanne von Teilen des Pfads.
Gibt zurück
Die kombinierten Pfade.
Gilt für:
Combine(String[])
- Quelle:
- Path.cs
- Quelle:
- Path.cs
- Quelle:
- Path.cs
Kombiniert ein Array von Zeichenfolgen in einem Pfad.
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
Parameter
- paths
- String[]
Ein Array von Teilen des Pfads.
Gibt zurück
Die kombinierten Pfade.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Eine der Zeichenfolgen im Array enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars()definiert ist.
Eine der Zeichenfolgen im Array ist null
.
Beispiele
Im folgenden Beispiel wird ein Array von Zeichenfolgen in einem Pfad kombiniert.
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)
Hinweise
paths
sollte ein Array der Teile des zu kombinierenden Pfads sein. Wenn einer der nachfolgenden Pfade ein absoluter Pfad ist, wird der Kombinationsvorgang beginnend mit diesem absoluten Pfad zurückgesetzt, wobei alle vorherigen kombinierten Pfade verworfen werden.
Wenn ein Element in paths
, aber das letzte Element kein Laufwerk ist und nicht mit dem DirectorySeparatorChar oder dem AltDirectorySeparatorChar Zeichen endet, fügt die Combine
-Methode ein DirectorySeparatorChar Zeichen zwischen diesem Element und dem nächsten hinzu. Beachten Sie, dass, wenn das Element mit einem Pfadtrennzeichen endet, das nicht für die Zielplattform geeignet ist, das Combine
ursprüngliche Pfadtrennzeichen beibehalten und ein unterstütztes anzufügen. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der umgekehrte Schrägstrich als Pfadtrennzeichen verwendet wird.
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
Leere Zeichenfolgen werden aus dem kombinierten Pfad weggelassen.
Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der Combine
-Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Such-Wildcardzeichen verwenden können. Wenn beispielsweise Path.Combine("c:\\", "*.txt")
ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie als Suchzeichenfolge gültig. Daher wird sie von der Combine
Methode erfolgreich interpretiert.
Weitere Informationen
Gilt für:
Combine(String, String)
- Quelle:
- Path.cs
- Quelle:
- Path.cs
- Quelle:
- Path.cs
Kombiniert zwei Zeichenfolgen in einem Pfad.
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
Parameter
- path1
- String
Der erste zu kombinierende Pfad.
- path2
- String
Der zweite zu kombinierende Pfad.
Gibt zurück
Die kombinierten Pfade. Wenn einer der angegebenen Pfade eine leere Zeichenfolge ist, gibt diese Methode den anderen Pfad zurück. Wenn path2
einen absoluten Pfad enthält, gibt diese Methode path2
zurück.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path1
oder path2
enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars()definiert ist.
path1
oder path2
ist null
.
Beispiele
Das folgende Beispiel veranschaulicht die Verwendung der Combine
-Methode unter Windows.
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
Hinweise
Wenn path1
kein Laufwerksverweis (d:" oder "D:") ist und nicht mit einem gültigen Trennzeichen endet, das in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChardefiniert ist, wird DirectorySeparatorChar vor der Verkettung an path1
angefügt. Wenn path1
auf ein Pfadtrennzeichen endet, das nicht für die Zielplattform geeignet ist, behält die Combine
Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der umgekehrte Schrägstrich als Pfadtrennzeichen verwendet wird.
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
Wenn path2
keinen Stamm enthält (z. B. wenn path2
nicht mit einem Trennzeichen oder einer Laufwerksspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2
einen Stamm enthält, wird path2
zurückgegeben.
Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. Wenn path2
leerzeichen (z. B. "\file.txt") enthält, fügt die Combine-Methode path2
an path1
an, anstatt nur path2
zurückzugeben.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der Combine
-Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Such-Wildcardzeichen verwenden können. Wenn beispielsweise Path.Combine("c:\\", "*.txt")
ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie als Suchzeichenfolge gültig. Daher wird sie von der Combine
Methode erfolgreich interpretiert.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.
Weitere Informationen
- Dateiformate auf Windows-Systemen
- Datei- und Stream-E/A-
- How to: Read Text from a File
- How to: Write Text to a File
Gilt für:
Combine(String, String, String)
- Quelle:
- Path.cs
- Quelle:
- Path.cs
- Quelle:
- Path.cs
Kombiniert drei Zeichenfolgen in einem Pfad.
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
Parameter
- path1
- String
Der erste zu kombinierende Pfad.
- path2
- String
Der zweite zu kombinierende Pfad.
- path3
- String
Der dritte Zu kombinierende Pfad.
Gibt zurück
Die kombinierten Pfade.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path1
, path2
oder path3
enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars()definiert ist.
path1
, path2
oder path3
ist null
.
Beispiele
Im folgenden Beispiel werden drei Pfade kombiniert.
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)
Hinweise
path1
sollte ein absoluter Pfad sein (z. B. "d:\archives" oder "\\archives\public"). Wenn path2
oder path3
auch ein absoluter Pfad ist, verwirft der Kombinationsvorgang alle zuvor kombinierten Pfade und setzt auf diesen absoluten Pfad zurück.
Leere Zeichenfolgen werden aus dem kombinierten Pfad weggelassen.
Wenn path1
oder path2
kein Laufwerksverweis (d:" oder "D:") ist und nicht mit einem gültigen Trennzeichen endet, wie in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChardefiniert, wird DirectorySeparatorChar vor der Verkettung an path1
oder path2
angefügt. Wenn path1
oder path2
auf ein Pfadtrennzeichen endet, das nicht für die Zielplattform geeignet ist, behält die Combine
Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der umgekehrte Schrägstrich als Pfadtrennzeichen verwendet wird.
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
Wenn path2
keinen Stamm enthält (z. B. wenn path2
nicht mit einem Trennzeichen oder einer Laufwerksspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2
einen Stamm enthält, wird path2
zurückgegeben.
Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. Wenn path2
leerzeichen (z. B. "\file.txt") enthält, fügt die Combine Methode path2
an path1
an.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der Combine
-Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Such-Wildcardzeichen verwenden können. Wenn beispielsweise Path.Combine("c:\\", "*.txt")
ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie als Suchzeichenfolge gültig. Daher wird sie von der Combine
Methode erfolgreich interpretiert.
Weitere Informationen
Gilt für:
Combine(String, String, String, String)
- Quelle:
- Path.cs
- Quelle:
- Path.cs
- Quelle:
- Path.cs
Kombiniert vier Zeichenfolgen in einem Pfad.
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
Parameter
- path1
- String
Der erste zu kombinierende Pfad.
- path2
- String
Der zweite zu kombinierende Pfad.
- path3
- String
Der dritte Zu kombinierende Pfad.
- path4
- String
Der vierte Zu kombinierende Pfad.
Gibt zurück
Die kombinierten Pfade.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path1
, path2
, path3
oder path4
enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars()definiert ist.
path1
, path2
, path3
oder path4
ist null
.
Beispiele
Im folgenden Beispiel werden vier Pfade kombiniert.
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)
Hinweise
path1
sollte ein absoluter Pfad sein (z. B. "d:\archives" oder "\\archives\public"). Wenn einer der nachfolgenden Pfade auch ein absoluter Pfad ist, verwirft der Kombinationsvorgang alle zuvor kombinierten Pfade und setzt auf diesen absoluten Pfad zurück.
Leere Zeichenfolgen werden aus dem kombinierten Pfad weggelassen.
Wenn path1
, path2
oder path3
kein Laufwerksverweis (d:" oder "D:") ist und nicht mit einem gültigen Trennzeichen endet, wie in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChardefiniert, wird DirectorySeparatorChar vor der Verkettung angefügt. Wenn path1
, path2
oder path3
auf ein Pfadtrennzeichen endet, das nicht für die Zielplattform geeignet ist, behält die Combine
Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der umgekehrte Schrägstrich als Pfadtrennzeichen verwendet wird.
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\
Wenn path2
keinen Stamm enthält (z. B. wenn path2
nicht mit einem Trennzeichen oder einer Laufwerksspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2
einen Stamm enthält, wird path2
zurückgegeben.
Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. Wenn path2
leerzeichen (z. B. "\file.txt") enthält, fügt die Combine Methode path2
an path1
an.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der Combine
-Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Such-Wildcardzeichen verwenden können. Wenn beispielsweise Path.Combine("c:\\", "*.txt")
ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie als Suchzeichenfolge gültig. Daher wird sie von der Combine
Methode erfolgreich interpretiert.