Path.Combine Methode

Definition

Kombiniert Zeichenfolgen zu einem Pfad.

Überlädt

Combine(String[])

Kombiniert ein Array von Zeichenfolgen zu einem Pfad.

Combine(String, String)

Kombiniert zwei Zeichenfolgen zu einem Pfad.

Combine(String, String, String)

Kombiniert drei Zeichenfolgen zu einem Pfad.

Combine(String, String, String, String)

Kombiniert vier Zeichenfolgen zu einem Pfad.

Hinweise

Diese Methode soll einzelne Zeichenfolgen zu einer einzelnen Zeichenfolge verketten, die einen Dateipfad darstellt. Wenn jedoch ein anderes Argument als das erste einen Stammpfad enthält, werden alle vorherigen Pfadkomponenten ignoriert, und die zurückgegebene Zeichenfolge beginnt mit dieser Stammpfadkomponente. Erwägen Sie als Alternative zur Combine -Methode die Verwendung der Join - oder TryJoin -Methode.

Wichtig

Bei dieser Methode wird davon ausgegangen, dass das erste Argument ein absoluter Pfad ist und dass die folgenden 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 - oder TryJoin -Methode auf.

Combine(String[])

Kombiniert ein Array von Zeichenfolgen zu 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 der Teile des Pfads.

Gibt zurück

String

Die kombinierten Pfade.

Ausnahmen

.NET Framework und .NET Core-Versionen vor 2.1: Eine der Zeichenfolgen im Array enthält mindestens eines der ungültigen Zeichen, die in definiert GetInvalidPathChars() sind.

Eine der Zeichenfolgen im Array ist null.

Beispiele

Im folgenden Beispiel wird ein Array von Zeichenfolgen zu 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 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 weder mit noch mit dem Zeichen DirectorySeparatorChar AltDirectorySeparatorChar endet, fügt die Combine -Methode ein Zeichen zwischen diesem Element und DirectorySeparatorChar dem nächsten hinzu. Beachten Sie Folgendes: Wenn das Element mit einem Pfadtrennzeichen endet, das für die Zielplattform nicht 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.

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

Zeichenfolgen der Länge 0 (null) werden im kombinierten Pfad ausgelassen.

Die Parameter werden nicht analysiert, wenn sie über Leerzeichen verfügen.

.NET Framework und .NET Core-Versionen älter als 2.1: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der -Methode als nicht akzeptabel Combine interpretiert, da Sie diese Zeichen für Such-Platzhalterzeichen verwenden können. Obwohl beispielsweise Path.Combine("c:\\", "*.txt") ungültig sein kann, wenn Sie eine Datei daraus erstellen würden, ist sie als Suchzeichenfolge gültig. Sie wird daher von der -Methode erfolgreich Combine interpretiert.

Siehe auch

Gilt für

Combine(String, String)

Kombiniert zwei Zeichenfolgen zu 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

String

Die kombinierten Pfade. Wenn einer der beiden angegebenen Pfade eine Zeichenfolge der Länge 0 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 vor 2.1: oder enthält mindestens eines der in definierten path1 path2 ungültigen GetInvalidPathChars() Zeichen.

path1 oder path2 ist null.

Beispiele

Im folgenden Beispiel wird die Verwendung der -Methode Combine auf einer Windows-basierten Desktopplattform veranschaulicht.

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 = "";
        string path6 = null;

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

    private static 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 == null)
                p1 = "null";
            if (p2 == null)
                p2 = "null";
            Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}",
                        p1, p2, Environment.NewLine, e.Message);
        }

        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'
//
// You cannot combine 'null' and 'subdir\file.txt' because:
// Value cannot be null.
// Parameter name: path1
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 kein Laufwerkverweis ist (d. h. "C:" oder "D:") und nicht mit einem gültigen Trennzeichen endet, wie in , oder definiert, wird vor der Verkettung an path1 DirectorySeparatorChar AltDirectorySeparatorChar VolumeSeparatorChar DirectorySeparatorChar path1 angefügt. Beachten Sie: Wenn mit einem Pfadtrennzeichen endet, das für die Zielplattform nicht geeignet ist, behält die Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein path1 Combine unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der schräge 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 keinen Stamm enthält (z. B. wenn nicht mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem path2 path2 intervening-Trennzeichen. Wenn path2 einen Stamm enthält, wird path2 zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerraum haben. Daher fügt die Methode an, wenn Leerzeichen enthält (z. B. path2 "file.txt "), anstatt nur zurück zu \ Combine path2 path1 path2 geben.

.NET Framework und .NET Core-Versionen vor 2.1: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der -Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Platzhalterzeichen für die Suche verwenden Combine können. Während beispielsweise ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie Path.Combine("c:\\", "*.txt") als Suchzeichenfolge gültig. Sie wird daher von der -Methode erfolgreich Combine interpretiert.

Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Siehe auch

Gilt für

Combine(String, String, String)

Kombiniert drei Zeichenfolgen zu 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

String

Die kombinierten Pfade.

Ausnahmen

.NET Framework und .NET Core-Versionen vor 2.1: , oder enthält mindestens eines der in definierten path1 path2 path3 ungültigen GetInvalidPathChars() Zeichen.

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

path1sollte ein absoluter Pfad sein (z. B. "d: \ archive" oder " \ \ archives \ public"). Wenn path2 oder auch ein path3 absoluter Pfad ist, verwirft der Kombinationsvorgang alle zuvor kombinierten Pfade und setzt auf diesen absoluten Pfad zurück.

Zeichenfolgen der Länge 0 (null) werden im kombinierten Pfad ausgelassen.

Wenn oder kein Laufwerkverweis ist (d. h. path1 path2 "C:" oder "D:") und nicht mit einem gültigen Trennzeichen endet, wie in , oder definiert, wird an oder vor der Verkettung DirectorySeparatorChar AltDirectorySeparatorChar VolumeSeparatorChar DirectorySeparatorChar path1 path2 angefügt. Beachten Sie: Wenn oder mit einem Pfadtrennzeichen endet, das für die Zielplattform nicht geeignet ist, behält die Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein path1 path2 Combine unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der schräge 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 keinen Stamm enthält (z. B. wenn nicht mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem path2 path2 intervening-Trennzeichen. Wenn path2 einen Stamm enthält, wird path2 zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerraum haben. Daher fügt die -Methode an an, wenn Leerzeichen enthält (z. B. path2 " \file.txt "). Combine path2 path1

.NET Framework und .NET Core-Versionen vor 2.1: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der -Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Platzhalterzeichen für die Suche verwenden Combine können. Während beispielsweise ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie Path.Combine("c:\\", "*.txt") als Suchzeichenfolge gültig. Sie wird daher von der -Methode erfolgreich Combine interpretiert.

Siehe auch

Gilt für

Combine(String, String, String, String)

Kombiniert vier Zeichenfolgen zu 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

String

Die kombinierten Pfade.

Ausnahmen

.NET Framework und .NET Core-Versionen vor 2.1: , , oder enthält mindestens eines der in definierten path1 path2 path3 path4 ungültigen GetInvalidPathChars() Zeichen.

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

path1sollte ein absoluter Pfad sein (z. B. "d: \ archive" 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.

Zeichenfolgen der Länge 0 (null) werden im kombinierten Pfad ausgelassen.

Wenn , oder kein Laufwerkverweis ist (d. h. path1 path2 path3 "C:" oder "D:") und nicht mit einem gültigen Trennzeichen endet, wie in , oder definiert, wird vor der Verkettung DirectorySeparatorChar AltDirectorySeparatorChar VolumeSeparatorChar DirectorySeparatorChar angefügt. Wenn , oder mit einem Pfadtrennzeichen enden, das für die Zielplattform nicht geeignet ist, behält die Methode das ursprüngliche Pfadtrennzeichen bei und fügt ein path1 path2 path3 Combine unterstütztes an. Im folgenden Beispiel wird das Ergebnis auf Windows- und Unix-basierten Systemen verglichen, wenn der schräge 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 keinen Stamm enthält (z. B. wenn nicht mit einem Trennzeichen oder einer Laufwerkspezifikation beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem path2 path2 intervening-Trennzeichen. Wenn path2 einen Stamm enthält, wird path2 zurückgegeben.

Die Parameter werden nicht analysiert, wenn sie Leerraum haben. Daher fügt die -Methode an an, wenn Leerzeichen enthält (z. B. path2 " \file.txt "). Combine path2 path1

.NET Framework und .NET Core-Versionen vor 2.1: Nicht alle ungültigen Zeichen für Verzeichnis- und Dateinamen werden von der -Methode als inakzeptabel interpretiert, da Sie diese Zeichen für Platzhalterzeichen für die Suche verwenden Combine können. Während beispielsweise ungültig sein könnte, wenn Sie eine Datei daraus erstellen würden, ist sie Path.Combine("c:\\", "*.txt") als Suchzeichenfolge gültig. Sie wird daher von der -Methode erfolgreich Combine interpretiert.

Siehe auch

Gilt für