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 Standard Member 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 angibt. 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. Auf einigen Systemen kann ein Pfad beispielsweise mit einem Laufwerks- 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 für kleinere Flashspeicher und ältere Versionen von ISO 9660 verwendet werden, die auf optischen Medien verwendet werden), 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 vollständig einen Speicherort 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 als Ausgangspunkt beim Suchen einer Datei verwendet, die mit einem relativen Pfad angegeben ist. Rufen Sie zum Ermitteln des aktuellen Verzeichnisses auf Directory.GetCurrentDirectory.

.NET Core 1.1 und höhere 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 unter Windows finden Sie unter Dateipfadformate auf Windows-Systemen.

Die meisten Member der Path -Klasse interagieren nicht mit dem Dateisystem und überprüfen nicht, ob die durch eine Pfadzeichenfolge angegebene Datei vorhanden ist. Path Klassenmember, die eine Pfadzeichenfolge ändern, wie ChangeExtensionz. B. , haben keine Auswirkungen auf die Namen von Dateien im Dateisystem.

Einige Path Member überprüfen den Inhalt einer angegebenen Pfadzeichenfolge und lösen einen aus 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. Auf Windows-basierten Desktopplattformen können ungültige Pfadzeichen beispielsweise Anführungszeichen ("), kleiner als (), größer als (<>), pipe (|), Backspace (\b), NULL (\0) und Unicode-Zeichen 16 bis 18 und 20 bis 25 enthalten. Dieses Validierungsverhalten 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 annehmen, lösen ein ausArgumentException, wenn ungültige Pfadzeichen erkannt werden.

  • In .NET Core 2.1 und höheren Versionen: GetFullPath ist das einzige Element, das ein 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 zu einem Pfadnamen kombinieren.

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

Hinweis

In Membern, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad wohlgeformt sein, oder es wird eine Ausnahme ausgelöst. Wenn ein Pfad beispielsweise voll qualifiziert ist, aber mit einem Leerzeichen beginnt, wird der Pfad nicht in Methoden der -Klasse gekürzt. Daher ist der Pfad falsch formatiert, und es wird eine Ausnahme ausgelöst. Ebenso kann ein Pfad oder eine Kombination von Pfaden nicht zweimal 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 wohlgeformt sind, wenn Sie Methoden verwenden, die eine Pfadzeichenfolge akzeptieren.

In Membern, 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 Pfade akzeptabel:

  • "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, kann nicht überprüft werden, ob die Ergebnisse in allen Szenarien gültig sind. Die -Methode analysiert beispielsweise eine Zeichenfolge, GetExtension 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 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.

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 zu einer einzelnen vorab zugeordneten 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 zu einer einzigen vorbelegten Zeichenspanne zu verketten, und gibt einen Wert zurück, der den Erfolg des Vorgangs angibt.

Gilt für:

Weitere Informationen