Path.Combine Methode

Definition

Kombiniert Zeichenfolgen in einem Pfad.

Überlädt

Name Beschreibung
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. Alternativ zur Combine-Methode sollten Sie die Methoden Join oder TryJoin (nicht im .NET Framework verfügbar) verwenden.

Important

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 Zeichenfolgen sind, die vom Benutzer eingegeben werden, rufen Sie stattdessen die Join Methode auf TryJoin .

Combine(String[])

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, paths aber das letzte Element kein Laufwerk ist und nicht mit dem DirectorySeparatorChar Zeichen oder dem AltDirectorySeparatorChar Zeichen endet, fügt die Combine Methode ein Zeichen zwischen diesem Element und dem nächsten hinzu DirectorySeparatorChar . Beachten Sie, dass, wenn das Element auf 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 Sie beispielsweise eine Datei daraus erstellen möchten, Path.Combine("c:\\", "*.txt") ist sie möglicherweise ungültig, sie ist jedoch als Suchzeichenfolge gültig. Daher wird sie von der Combine Methode erfolgreich interpretiert.

Weitere Informationen

Gilt für:

Combine(String, String)

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 ein absoluter Pfad enthalten ist, gibt diese Methode zurück path2.

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 methode Combine für Windows.

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

Hinweise

Wenn path1 es sich nicht um einen Laufwerkverweis (d:" oder "D:") handelt und nicht mit einem gültigen Trennzeichen endet, wie in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChar, DirectorySeparatorChar wird vor der Verkettung angefügt path1 . Beachten Sie, dass bei path1 Einem Pfadtrennzeichen, das nicht für die Zielplattform geeignet ist, das Combine ursprüngliche Pfadtrennzeichen beibehalten und ein unterstütztes Zeichen angefügt wird. 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 kein Stammverzeichnis (z. B. nicht path2 mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2 ein Stamm enthalten ist, path2 wird dieser zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. path2 Wenn sie Leerzeichen (z. B. "\file.txt") enthält, wird die Combine Methode daher angefügt path2path1, anstatt nur path2zurü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 Sie beispielsweise eine Datei daraus erstellen möchten, Path.Combine("c:\\", "*.txt") ist sie möglicherweise ungültig, sie ist jedoch 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

Gilt für:

Combine(String, String, String)

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, path2oder 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 Laufwerkverweis (d:" oder "D:") ist und nicht mit einem gültigen Trennzeichen endet, wie in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChar, DirectorySeparatorChar wird an path1 oder path2 vor der Verkettung angefügt. Beachten Sie, dass, wenn path1 oder path2 endet in einem Pfadtrennzeichen, das für die Zielplattform nicht 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.

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 kein Stammverzeichnis (z. B. nicht path2 mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2 ein Stamm enthalten ist, path2 wird dieser zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. path2 Wenn sie Leerzeichen (z. B. "\file.txt") enthält, wird die Combine Methode angefügt path2path1.

.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 Sie beispielsweise eine Datei daraus erstellen möchten, Path.Combine("c:\\", "*.txt") ist sie möglicherweise ungültig, sie ist jedoch als Suchzeichenfolge gültig. Daher wird sie von der Combine Methode erfolgreich interpretiert.

Weitere Informationen

Gilt für:

Combine(String, String, String, String)

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, path2oder path3 ist kein Laufwerkverweis (d:" oder "D:") und endet nicht mit einem gültigen Trennzeichen, wie in DirectorySeparatorChar, AltDirectorySeparatorCharoder VolumeSeparatorChar, DirectorySeparatorChar wird an ihn vor der Verkettung angefügt. Beachten Sie, dass die Methode das ursprüngliche Pfadtrennzeichen beibehalten und ein unterstütztes Pfadtrennzeichen anfügen kann, wenn path1path2, oder path3 auf ein Pfadtrennzeichen endet, Combine das nicht für die Zielplattform geeignet ist. 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 kein Stammverzeichnis (z. B. nicht path2 mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen liegenden Trennzeichen. Wenn path2 ein Stamm enthalten ist, path2 wird dieser zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerzeichen aufweisen. path2 Wenn sie Leerzeichen (z. B. "\file.txt") enthält, wird die Combine Methode angefügt path2path1.

.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 Sie beispielsweise eine Datei daraus erstellen möchten, Path.Combine("c:\\", "*.txt") ist sie möglicherweise ungültig, sie ist jedoch als Suchzeichenfolge gültig. Daher wird sie von der Combine Methode erfolgreich interpretiert.

Weitere Informationen

Gilt für: