Path Klasse

Definition

Führt Vorgänge für String-Instanzen aus, die Datei- oder Verzeichnispfadinformationen enthalten. Diese Vorgänge werden plattformübergreifend durchgefü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 hauptmitglieder 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 einem Speicherort im Arbeitsspeicher oder auf einem Gerät zugeordnet werden. Das genaue Format eines Pfads wird von der aktuellen Plattform bestimmt. Bei einigen Systemen kann ein Pfad z. B. mit einem Laufwerk oder Volumenbuchstaben beginnen, während dieses Element in anderen Systemen nicht vorhanden ist. Auf einigen Systemen können Dateipfade Erweiterungen enthalten, die den In der Datei gespeicherten Informationstyp angeben. Das Format einer Dateinamenerweiterung ist plattformabhängig; Beispielsweise beschränken einige Systeme Erweiterungen auf drei Zeichen (z. B. FAT16, die häufig für kleinere Flashspeicher und ältere 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 verwendet werden, um die Elemente eines Pfads zu trennen, und den Satz von Zeichen, die beim Angeben von Pfaden nicht verwendet werden können. Aufgrund dieser Unterschiede sind die Felder Path der Klasse sowie das genaue Verhalten einiger Mitglieder 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 Teilspeicherort an: Der aktuelle Speicherort wird als Ausgangspunkt beim Suchen einer Datei verwendet, die mit einem relativen Pfad angegeben ist. Rufen Sie Directory.GetCurrentDirectoryauf, um das aktuelle Verzeichnis zu ermitteln.

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

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

Die meisten Elemente der Path Klasse interagieren nicht mit dem Dateisystem, und überprüfen Sie nicht die Existenz der Datei, die durch eine Pfadzeichenfolge angegeben ist. Path Klassenmitglieder, die eine Pfadzeichenfolge ändern, z ChangeExtension. B. , haben keine Auswirkungen auf Namen von Dateien im Dateisystem.

Einige Path Elemente überprüfen den Inhalt einer angegebenen Pfadzeichenfolge, und führen Sie ein ArgumentException , wenn die Zeichenfolge Zeichen enthält, die in Pfadzeichenfolgen nicht gültig sind, wie in den von der GetInvalidPathChars Methode zurückgegebenen Zeichen definiert. Bei Windows-basierten Desktopplattformen können ungültige Pfadzeichen z. B. Anführungszeichen ("), kleiner (als (<), greater than (>), Pipe (|), Backspace\ (b), Null\ (0) und Unicode-Zeichen 16 bis 18 und 20 bis 25 enthalten. Dieses Überprüfungsverhalten variiert zwischen .NET-Versionen:

  • Bei .NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: Alle Path Elemente, die einen Pfad als Argument ausführen, löst einArgumentException, wenn sie ungültige Pfadzeichen erkennen.

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

Mit den Mitgliedern der Path Klasse können Sie häufig verwendete Vorgänge schnell und einfach ausführen, z. B. bestimmen, ob eine Dateinamenerweiterung Teil eines Pfads ist und zwei Zeichenfolgen in einen Pfadnamen kombinieren.

Alle Elemente der Path Klasse sind statisch und können daher aufgerufen werden, ohne dass eine Instanz eines Pfads vorhanden ist.

Hinweis

In Elementen, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad gut gebildet 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 zweimal nicht vollständig qualifiziert werden. Beispielsweise löst "c:temp c\:\windows" in den meisten Fällen auch eine Ausnahme aus. Stellen Sie sicher, dass Ihre Pfade beim Verwenden von Methoden, die eine Pfadzeichenfolge akzeptieren, gut gebildet 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 UNIVERSELLEn Benennungskonventionspfad (UNC) für einen Server- und Freigabenamen verweisen. So sind beispielsweise alle folgenden Pfade zulässig:

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

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

  • "MyDirMySubdir\\" in C#oder "MyDirMySubDir\" in Visual Basic.

  • "\\\\MyServerMyShare" in C# oder "\\MyServerMyShare\\\" in Visual Basic.

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

Eine Liste allgemeiner I/O-Aufgaben finden Sie unter "Allgemeine I/O-Aufgaben".

Felder

AltDirectorySeparatorChar

Stellt ein plattformspezifisches, alternatives Zeichen bereit, das zur Trennung von Verzeichnisebenen in einer Pfadzeichenfolge verwendet wird und eine hierarchische Dateisystemorganisation wiedergibt.

DirectorySeparatorChar

Stellt ein plattformspezifisches Zeichen bereit, das zur Trennung von Verzeichnisebenen in einer Pfadzeichenfolge verwendet wird und eine hierarchische Dateisystemorganisation wiedergibt.

InvalidPathChars
Veraltet.
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 zur Trennung von Pfadzeichenfolgen in Umgebungsvariablen verwendet wird.

VolumeSeparatorChar

Stellt ein plattformspezifisches Volumetrennzeichen bereit.

Methoden

ChangeExtension(String, String)

Ändert die Erweiterung einer Pfadzeichenfolge.

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.

Combine(String[])

Kombiniert ein Array von Zeichenfolgen zu einem Pfad.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

Gibt einen Wert zurück, mit dem angegeben wird, ob der als schreibgeschützter Bereich angegebene Pfad auf ein Verzeichnistrennzeichen endet.

EndsInDirectorySeparator(String)

Gibt einen Wert zurück, der angibt, ob der angegebene Pfad auf ein 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 in Form einer Zeichenspanne zurück.

GetDirectoryName(String)

Diese gibt die Verzeichnisinformationen für den angegebenen Pfad zurück.

GetExtension(ReadOnlySpan<Char>)

Gibt die Erweiterung eines Dateipfads zurück, der durch eine schreibgeschützte Zeichenspanne 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 eine schreibgeschützte Zeichenspanne 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 eine schreibgeschützte Zeichenspanne dargestellt wird.

GetFileNameWithoutExtension(String)

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

GetFullPath(String)

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

GetFullPath(String, String)

Gibt einen absoluten Pfad aus einem relativen Pfad und einen 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 Informationen über das Stammverzeichnis aus dem Pfad ab, der in der angegebenen Zeichenspanne enthalten ist.

GetPathRoot(String)

Ruft Informationen über das Stammverzeichnis 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 Datei auf dem Datenträger mit einer Größe von 0 Byte 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>)

Legt fest, ob der Pfad, der durch die angegebene Zeichenspanne dargestellt wird, eine Erweiterung enthält.

HasExtension(String)

Bestimmt, ob ein Pfad eine Dateierweiterung enthält.

IsPathFullyQualified(ReadOnlySpan<Char>)

Gibt einen Wert zurück, der angibt, ob der durch die angegebene Zeichenspanne dargestellte Dateipfad auf ein bestimmtes Laufwerk oder einen 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 die angegebene Zeichenspanne zur Darstellung eines Dateipfads 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 zu einem einzigen Pfad.

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

Verkettet drei Pfadkomponenten zu einem einzigen Pfad.

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

Verkettet vier Pfadkomponenten zu einem einzelnen Pfad.

Join(String, String)

Verkettet zwei Pfade zu einem einzelnen Pfad.

Join(String, String, String)

Verkettet drei Pfade zu einem einzelnen Pfad.

Join(String, String, String, String)

Verkettet vier Pfade zu einem einzelnen Pfad.

Join(String[])

Verkettet ein Array von Pfaden zu einem einzelnen Pfad.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

Schneidet ein nachstehendes Verzeichnistrennzeichen nach dem Stamm des angegebenen Pfads ab.

TrimEndingDirectorySeparator(String)

Schneidet ein nachstehendes Verzeichnistrennzeichen nach dem Stamm des angegebenen Pfads ab.

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

Versucht, drei Pfadkomponenten auf einen einzelnen präallokatierten Zeichenbereich zu verketten und einen Wert zurückzugeben, der angibt, ob der Vorgang erfolgreich war.

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

Versucht, zwei Pfadkomponenten zu einer einzigen vorbelegten Zeichenspanne zu verketten, und gibt einen Wert zurück, der den Erfolg des Vorgangs angibt.

Gilt für

Siehe auch