Freigeben über


Path.Combine-Methode

Kombiniert zwei Pfadzeichenfolgen.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function Combine ( _
    path1 As String, _
    path2 As String _
) As String
'Usage
Dim path1 As String
Dim path2 As String
Dim returnValue As String

returnValue = Path.Combine(path1, path2)
public static string Combine (
    string path1,
    string path2
)
public:
static String^ Combine (
    String^ path1, 
    String^ path2
)
public static String Combine (
    String path1, 
    String path2
)
public static function Combine (
    path1 : String, 
    path2 : String
) : String

Parameter

  • path1
    Der erste Pfad.
  • path2
    Der zweite Pfad.

Rückgabewert

Eine Zeichenfolge mit dem kombinierten Pfad. 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

Ausnahmetyp Bedingung

ArgumentException

path1 oder path2 enthalten mindestens eins der in InvalidPathChars definierten ungültigen Zeichen oder ein Platzhalterzeichen.

ArgumentNullException

path1 oder path2 ist NULL (Nothing in Visual Basic).

Hinweise

Wenn path1 kein Laufwerkverweis ist (d. h. "C:" oder "D:") und nicht mit einem in definierten DirectorySeparatorChar gültigen Trennzeichen endet, wird AltDirectorySeparatorChar oder VolumeSeparatorChar, DirectorySeparatorChar vor der Verkettung an path1 angefügt.

Wenn path2 kein Stammverzeichnis enthält (wenn path2 beispielsweise nicht mit einem Trennzeichen oder einer Laufwerkangabe beginnt), ist das Ergebnis eine Verkettung der beiden Pfade mit einem dazwischen eingefügten Trennzeichen. Wenn path2 ein Stammverzeichnis enthält, wird path2 zurückgegeben.

Wenn path2 " c:\\ " lautet, wird diese Zeichenfolge an path1 angefügt und nicht nur path2 zurückgegeben, da Parameter mit Leerraum nicht analysiert werden.

Nicht alle für Verzeichnis- und Dateinamen ungültigen Zeichen werden von der Combine-Methode als nicht akzeptabel interpretiert, da diese Zeichen als Platzhalterzeichen bei der Suche verwendet werden können. Während beispielsweise Path.Combine("c:\\", "*.txt") ungültig sein kann, wenn Sie daraus eine Datei erstellen möchten, ist dies als Suchzeichenfolge gültig. Sie wird daher von der Combine-Methode erfolgreich interpretiert.

Ein Beispiel für die Verwendung dieser Methode finden Sie im Beispielabschnitt weiter unten. In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Erstellen einer Textdatei.

Gewusst wie: Schreiben von Text in eine Datei

Schreiben in eine Textdatei.

Gewusst wie: Schreiben von Text in eine Datei

Lesen aus einer Textdatei.

Gewusst wie: Lesen aus einer Textdatei

Abrufen einer Dateierweiterung.

GetExtension

Abrufen des voll qualifizierten Pfades einer Datei.

GetFullPath

Abrufen des Dateinamens sowie der Dateierweiterung aus einem Pfad.

GetFileName

Nur den Dateinamen aus einem Pfad abrufen.

GetFileNameWithoutExtension

Nur den Verzeichnisnamen aus einem Pfad abrufen.

GetDirectoryName

Ändern der Erweiterung einer Datei.

ChangeExtension

Dateien in einem Verzeichnis nach Größe sortieren.

GetFileSystemInfos

Bestimmen, ob ein Verzeichnis vorhanden ist.

Exists

Bestimmen, ob eine Datei vorhanden ist.

Exists

Beispiel

Im folgenden Codebeispiel wird die Verwendung der Combine-Methode auf einer Desktopplattform auf Grundlage von Windows veranschaulicht.

Imports System
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 'Main

    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
            Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment.NewLine, e.Message)
        End Try
        
        Console.WriteLine()
    End Sub 'CombinePaths
End Class 'ChangeExtensionTest
' 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
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) {
            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 '' and 'subdir\file.txt' because: 
// Value cannot be null.
// Parameter name: path1
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 ) 
   {
      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 );
}
import System.*;  
import System.IO.*;  

public class ChangeExtensionTest
{
    public static void main(String[] args)
    {
        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);
    } //main

    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}'", new Object[] { p1, p2, 
                Environment.get_NewLine(), combination });
        }
        catch (System.Exception e) {
            Console.WriteLine("You cannot combine '{0}' and '{1}' because: "
                + "{2}{3}", new Object[] { p1, p2, Environment.get_NewLine(), 
                e.get_Message() });
        }
        Console.WriteLine();
    } //CombinePaths
} //ChangeExtensionTest

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Path-Klasse
Path-Member
System.IO-Namespace

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei