Teilen über


Path Klasse

Definition

Führt Vorgänge für String Instanzen aus, die Datei- oder Verzeichnispfadinformationen enthalten. Diese Vorgänge werden plattformübergreifend ausgeführt.

public ref class Path abstract sealed
public ref class Path sealed
public static class Path
public sealed class Path
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Path = class
Public Class Path
Public NotInheritable Class Path
Vererbung
Path
Attribute

Beispiele

Im folgenden Beispiel werden einige der Hauptmmer der Path-Klasse veranschaulicht.

using namespace System;
using namespace System::IO;
int main()
{
   String^ path1 = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp\\MyTest";
   String^ path3 = "temp";
   if ( Path::HasExtension( path1 ) )
   {
      Console::WriteLine( "{0} has an extension.", path1 );
   }

   if (  !Path::HasExtension( path2 ) )
   {
      Console::WriteLine( "{0} has no extension.", path2 );
   }

   if (  !Path::IsPathRooted( path3 ) )
   {
      Console::WriteLine( "The string {0} contains no root information.", path3 );
   }

   Console::WriteLine( "The full path of {0} is {1}.", path3, Path::GetFullPath( path3 ) );
   Console::WriteLine( "{0} is the location for temporary files.", Path::GetTempPath() );
   Console::WriteLine( "{0} is a file available for use.", Path::GetTempFileName() );
   Console::WriteLine( "\r\nThe set of invalid characters in a path is:" );
   Console::WriteLine( "(Note that the wildcard characters '*' and '?' are not invalid.):" );
   Collections::IEnumerator^ myEnum = Path::InvalidPathChars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c =  *safe_cast<Char^>(myEnum->Current);
      Console::WriteLine( c );
   }
}
using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path1 = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp\MyTest";
        string path3 = @"temp";

        if (Path.HasExtension(path1))
        {
            Console.WriteLine("{0} has an extension.", path1);
        }

        if (!Path.HasExtension(path2))
        {
            Console.WriteLine("{0} has no extension.", path2);
        }

        if (!Path.IsPathRooted(path3))
        {
            Console.WriteLine("The string {0} contains no root information.", path3);
        }

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());

        /* This code produces output similar to the following:
         * c:\temp\MyTest.txt has an extension.
         * c:\temp\MyTest has no extension.
         * The string temp contains no root information.
         * The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
         */
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp\MyTest"
        Dim path3 As String = "temp"

        If Path.HasExtension(path1) Then
            Console.WriteLine("{0} has an extension.", path1)
        End If

        If Path.HasExtension(path2) = False Then
            Console.WriteLine("{0} has no extension.", path2)
        End If

        If Path.IsPathRooted(path3) = False Then
            Console.WriteLine("The string {0} contains no root information.", path3)
        End If

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3))
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath())
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName())

        ' This code produces output similar to the following:
        ' c:\temp\MyTest.txt has an extension.
        ' c:\temp\MyTest has no extension.
        ' The string temp contains no root information.
        ' The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.

    End Sub
End Class

Hinweise

Ein Pfad ist eine Zeichenfolge, die den Speicherort einer Datei oder eines Verzeichnisses bereitstellt. Ein Pfad verweist nicht unbedingt auf einen Speicherort auf dem Datenträger. Beispielsweise kann ein Pfad zu einem Speicherort im Arbeitsspeicher oder auf einem Gerät zugeordnet werden. Das genaue Format eines Pfads wird von der aktuellen Plattform bestimmt. Beispielsweise kann ein Pfad auf einigen Systemen mit einem Laufwerk- oder Volumebuchstaben beginnen, während dieses Element in anderen Systemen nicht vorhanden ist. Auf einigen Systemen können Dateipfade Erweiterungen enthalten, die den Typ der in der Datei gespeicherten Informationen angeben. Das Format einer Dateinamenerweiterung ist plattformabhängig; Beispielsweise beschränken einige Systeme Erweiterungen auf drei Zeichen (z. B. FAT16, die häufig auf kleinerem Flashspeicher und älteren Versionen von ISO 9660 verwendet werden, die auf optischen Medien verwendet werden), und andere nicht. Die aktuelle Plattform bestimmt auch den Satz von Zeichen, die zum Trennen der Elemente eines Pfads verwendet werden, und den Satz von Zeichen, die beim Angeben von Pfaden nicht verwendet werden können. Aufgrund dieser Unterschiede sind die Felder der Path Klasse sowie das genaue Verhalten einiger Member der Path Klasse plattformabhängig.

Ein Pfad kann absolute oder relative Standortinformationen enthalten. Absolute Pfade geben einen Speicherort vollständig an: Die Datei oder das Verzeichnis kann unabhängig vom aktuellen Speicherort eindeutig identifiziert werden. Relative Pfade geben einen teiligen Speicherort an: Der aktuelle Speicherort wird beim Suchen einer Datei, die mit einem relativen Pfad angegeben ist, als Ausgangspunkt verwendet. Rufen Sie Directory.GetCurrentDirectoryauf, um das aktuelle Verzeichnis zu ermitteln.

.NET Core 1.1 und höhere Versionen und .NET Framework 4.6.2 und höhere Versionen unterstützen auch den Zugriff auf Dateisystemobjekte, die Gerätenamen sind, z. B. "\\?\C:\".

Weitere Informationen zu Dateiformaten unter Windows finden Sie unter Dateipfadformate auf Windows-Systemen.

Die meisten Member der Path Klasse interagieren nicht mit dem Dateisystem und überprüfen nicht das Vorhandensein der datei, die durch eine Pfadzeichenfolge angegeben ist. Path Klassenmember, die eine Pfadzeichenfolge ändern, z. B. ChangeExtension, haben keine Auswirkungen auf Die Namen von Dateien im Dateisystem.

Einige Path Member überprüfen den Inhalt einer angegebenen Pfadzeichenfolge und lösen eine ArgumentException aus, wenn die Zeichenfolge Zeichen enthält, die in Pfadzeichenfolgen ungültig sind, wie in den von der GetInvalidPathChars-Methode zurückgegebenen Zeichen definiert. Beispielsweise können auf Windows-basierten Desktopplattformen ungültige Pfadzeichen Anführungszeichen ("), kleiner als (<), größer als (>), Pipe (|), Rücktaste (\b), Null (\0) und Unicode-Zeichen 16 bis 18 und 20 bis 25 enthalten. Dieses Überprüfungsverhalten variiert zwischen .NET-Versionen:

  • In .NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Alle Path Member, die einen Pfad als Argument verwenden, lösen eine ArgumentException aus, wenn sie ungültige Pfadzeichen erkennen.

  • In .NET Core 2.1 und höheren Versionen: GetFullPath ist das einzige Element, das eine ArgumentException auslöst, wenn die Zeichenfolge ungültige Pfadzeichen enthält.

Mit den Membern der Path-Klasse können Sie schnell und einfach allgemeine Vorgänge ausführen, z. B. bestimmen, ob eine Dateinamenerweiterung Teil eines Pfads ist, und zwei Zeichenfolgen in einem Pfadnamen kombinieren.

Alle Member der Path-Klasse sind statisch und können daher aufgerufen werden, ohne eine Instanz eines Pfads zu haben.

Anmerkung

In Elementen, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad wohlgeformt sein oder eine Ausnahme ausgelöst werden. Wenn beispielsweise ein Pfad vollständig qualifiziert ist, aber mit einem Leerzeichen beginnt, wird der Pfad nicht in Methoden der Klasse gekürzt. Daher ist der Pfad falsch formatiert und eine Ausnahme wird ausgelöst. Ebenso kann ein Pfad oder eine Kombination von Pfaden nicht zweimal vollqualifizierte werden. Beispielsweise löst "c:\temp c:\windows" in den meisten Fällen auch eine Ausnahme aus. Stellen Sie sicher, dass Ihre Pfade bei Verwendung von Methoden, die eine Pfadzeichenfolge akzeptieren, wohlgeformt sind.

In Mitgliedern, die einen Pfad akzeptieren, kann der Pfad auf eine Datei oder nur auf ein Verzeichnis verweisen. Der angegebene Pfad kann auch auf einen relativen Pfad oder einen UNC-Pfad (Universal Naming Convention) für einen Server und freigabenamen verweisen. Beispielsweise sind alle folgenden zulässigen Pfade:

  • "c:\\MyDir\\MyFile.txt" in C# oder "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C# oder "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C# oder "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C# oder "\\MyServer\MyShare" in Visual Basic.

Da alle diese Vorgänge für Zeichenfolgen ausgeführt werden, ist es unmöglich zu überprüfen, ob die Ergebnisse in allen Szenarien gültig sind. Die GetExtension-Methode analysiert beispielsweise eine Zeichenfolge, die Sie an sie übergeben, und gibt die Erweiterung aus dieser Zeichenfolge zurück. Dies bedeutet jedoch nicht, dass eine Datei mit dieser Erweiterung auf dem Datenträger vorhanden ist.

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

Felder

AltDirectorySeparatorChar

Stellt ein plattformspezifisches alternatives Zeichen bereit, das zum Trennen von Verzeichnisebenen in einer Pfadzeichenfolge verwendet wird, die eine hierarchische Dateisystemorganisation widerspiegelt.

DirectorySeparatorChar

Stellt ein plattformspezifisches Zeichen bereit, das zum Trennen von Verzeichnisebenen in einer Pfadzeichenfolge verwendet wird, die eine hierarchische Dateisystemorganisation widerspiegelt.

InvalidPathChars
Veraltet.
Veraltet.

Stellt ein plattformspezifisches Array von Zeichen bereit, die nicht in Pfadzeichenfolgenargumenten angegeben werden können, die an Member der Path Klasse übergeben werden.

PathSeparator

Ein plattformspezifisches Trennzeichen, das zum Trennen von Pfadzeichenfolgen in Umgebungsvariablen verwendet wird.

VolumeSeparatorChar

Stellt ein plattformspezifisches Volumetrennzeichen bereit.

Methoden

ChangeExtension(String, String)

Ändert die Erweiterung einer Pfadzeichenfolge.

Combine(ReadOnlySpan<String>)

Kombiniert eine Spanne 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.

Combine(String[])

Kombiniert ein Array von Zeichenfolgen in einem Pfad.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Gibt einen Wert zurück, der angibt, ob der als schreibgeschützte Bereich angegebene Pfad in einem Verzeichnistrennzeichen endet.

EndsInDirectorySeparator(String)

Gibt einen Wert zurück, der angibt, ob der angegebene Pfad in einem Verzeichnistrennzeichen endet.

Exists(String)

Bestimmt, ob die angegebene Datei oder das angegebene Verzeichnis vorhanden ist.

GetDirectoryName(ReadOnlySpan<Char>)

Gibt die Verzeichnisinformationen für den angegebenen Pfad zurück, der durch einen Zeichenbereich dargestellt wird.

GetDirectoryName(String)

Gibt die Verzeichnisinformationen für den angegebenen Pfad zurück.

GetExtension(ReadOnlySpan<Char>)

Gibt die Erweiterung eines Dateipfads zurück, der durch einen schreibgeschützten Zeichenbereich dargestellt wird.

GetExtension(String)

Gibt die Erweiterung (einschließlich des Punkts ".") der angegebenen Pfadzeichenfolge zurück.

GetFileName(ReadOnlySpan<Char>)

Gibt den Dateinamen und die Erweiterung eines Dateipfads zurück, der durch einen schreibgeschützten Zeichenbereich dargestellt wird.

GetFileName(String)

Gibt den Dateinamen und die Erweiterung der angegebenen Pfadzeichenfolge zurück.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

Gibt den Dateinamen ohne die Erweiterung eines Dateipfads zurück, der durch einen schreibgeschützten Zeichenbereich dargestellt wird.

GetFileNameWithoutExtension(String)

Gibt den Dateinamen der angegebenen Pfadzeichenfolge ohne die Erweiterung zurück.

GetFullPath(String)

Gibt den absoluten Pfad für die angegebene Pfadzeichenfolge zurück.

GetFullPath(String, String)

Gibt einen absoluten Pfad von einem relativen Pfad und einem vollqualifizierten Basispfad zurück.

GetInvalidFileNameChars()

Ruft ein Array ab, das die Zeichen enthält, die in Dateinamen nicht zulässig sind.

GetInvalidPathChars()

Ruft ein Array ab, das die Zeichen enthält, die in Pfadnamen nicht zulässig sind.

GetPathRoot(ReadOnlySpan<Char>)

Ruft die Stammverzeichnisinformationen aus dem Pfad ab, der in der angegebenen Zeichenspanne enthalten ist.

GetPathRoot(String)

Ruft die Stammverzeichnisinformationen aus dem Pfad ab, der in der angegebenen Zeichenfolge enthalten ist.

GetRandomFileName()

Gibt einen zufälligen Ordnernamen oder Dateinamen zurück.

GetRelativePath(String, String)

Gibt einen relativen Pfad von einem Pfad zu einem anderen zurück.

GetTempFileName()

Erstellt eine eindeutig benannte temporäre Null-Byte-Datei auf dem Datenträger und gibt den vollständigen Pfad dieser Datei zurück.

GetTempPath()

Gibt den Pfad des temporären Ordners des aktuellen Benutzers zurück.

HasExtension(ReadOnlySpan<Char>)

Bestimmt, ob der durch die angegebene Zeichenspanne dargestellte Pfad eine Dateinamenerweiterung enthält.

HasExtension(String)

Bestimmt, ob ein Pfad eine Dateinamenerweiterung enthält.

IsPathFullyQualified(ReadOnlySpan<Char>)

Gibt einen Wert zurück, der angibt, ob der durch die angegebene Zeichenspanne dargestellte Dateipfad auf einen bestimmten Laufwerks- oder UNC-Pfad festgelegt ist.

IsPathFullyQualified(String)

Gibt einen Wert zurück, der angibt, ob der angegebene Dateipfad auf ein bestimmtes Laufwerk oder einen UNC-Pfad festgelegt ist.

IsPathRooted(ReadOnlySpan<Char>)

Gibt einen Wert zurück, der angibt, ob der angegebene Zeichenbereich, der einen Dateipfad darstellt, einen Stamm enthält.

IsPathRooted(String)

Gibt einen Wert zurück, der angibt, ob die angegebene Pfadzeichenfolge einen Stamm enthält.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Verkettet zwei Pfadkomponenten in einem einzigen Pfad.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Verkettet drei Pfadkomponenten in einem einzelnen Pfad.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Verkettet vier Pfadkomponenten in einen einzelnen Pfad.

Join(ReadOnlySpan<String>)

Verkettet eine Spanne von Pfaden in einen einzelnen Pfad.

Join(String, String)

Verkettet zwei Pfade in einem einzigen Pfad.

Join(String, String, String)

Verkettet drei Pfade mit einem einzelnen Pfad.

Join(String, String, String, String)

Verkettet vier Pfade in einen einzelnen Pfad.

Join(String[])

Verkettet ein Array von Pfaden in einen einzelnen Pfad.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Schneidet ein nachfolgendes Verzeichnistrennzeichen über den Stamm des angegebenen Pfads hinaus.

TrimEndingDirectorySeparator(String)

Schneidet ein nachfolgendes Verzeichnistrennzeichen über den Stamm des angegebenen Pfads hinaus.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Versucht, drei Pfadkomponenten mit einer einzelnen vorallocatierten Zeichenspanne zu verketten, und gibt einen Wert zurück, der angibt, ob der Vorgang erfolgreich war.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

Versucht, zwei Pfadkomponenten mit einer einzelnen vorallocatierten Zeichenspanne zu verketten, und gibt einen Wert zurück, der angibt, ob der Vorgang erfolgreich war.

Gilt für:

Weitere Informationen