Path.GetFullPath Methode

Definition

Überlädt

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.

GetFullPath(String)

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

public:
 static System::String ^ GetFullPath(System::String ^ path);
public static string GetFullPath (string path);
static member GetFullPath : string -> string
Public Shared Function GetFullPath (path As String) As String

Parameter

path
String

Die Datei oder das Verzeichnis, für das die absoluten Pfadinformationen abgerufen werden sollen.

Gibt zurück

String

Die vollqualifizierte Position von path, z. B. "C:\MyFile.txt".

Ausnahmen

pathist eine leere Zeichenfolge, enthält nur Leerzeichen für Windows Systeme oder enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars().

- oder -

Das System konnte den absoluten Pfad nicht abrufen.

Der Aufrufer verfügt nicht über die erforderlichen Berechtigungen.

path ist null.

path enthält einen Doppelpunkt („:“), der kein Teil eines Volumenbezeichners (z.B. „c:\“) ist.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Beispiele

Im folgenden Beispiel wird die GetFullPath Methode auf einer Windows-basierten Desktopplattform veranschaulicht.

String^ fileName = "myfile.ext";
String^ path = "\\mydir\\";
String^ fullPath;
fullPath = Path::GetFullPath( path );
Console::WriteLine( "GetFullPath('{0}') returns '{1}'", path, fullPath );
fullPath = Path::GetFullPath( fileName );
Console::WriteLine( "GetFullPath('{0}') returns '{1}'", fileName, fullPath );

// Output is based on your current directory, except
// in the last case, where it is based on the root drive
// GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
// GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
// GetFullPath('\mydir') returns 'C:\mydir'
string fileName = "myfile.ext";
string path1 = @"mydir";
string path2 = @"\mydir";
string fullPath;

fullPath = Path.GetFullPath(path1);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    path1, fullPath);

fullPath = Path.GetFullPath(fileName);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    fileName, fullPath);

fullPath = Path.GetFullPath(path2);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    path2, fullPath);

// Output is based on your current directory, except
// in the last case, where it is based on the root drive
// GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
// GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
// GetFullPath('\mydir') returns 'C:\mydir'
Dim fileName As string = "myfile.ext"
Dim path1 As string = "mydir"
Dim path2 As string = "\mydir"
Dim fullPath As string

fullPath = Path.GetFullPath(path1)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    path1, fullPath)

fullPath = Path.GetFullPath(fileName)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    fileName, fullPath)

fullPath = Path.GetFullPath(path2)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    path2, fullPath)

' Output is based on your current directory, except
' in the last case, where it is based on the root drive
' GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
' GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
' GetFullPath('\mydir') returns 'C:\mydir'

Hinweise

Der absolute Pfad enthält alle Informationen, die zum Suchen einer Datei oder eines Verzeichnisses auf einem System erforderlich sind.

Die von ihnen angegebene Datei oder das angegebene path Verzeichnis ist nicht erforderlich. Wenn c:tempnewdir beispielsweise das aktuelle Verzeichnis ist, rufen Sie GetFullPath einen Dateinamen wie test.txt gibt c:\tempnewdir\ \\test.txtzurück.\ Die Datei muss nicht vorhanden sein.

Wichtig

Wenn path es sich um einen relativen Pfad handelt, gibt diese Überladung einen vollqualifizierten Pfad zurück, der auf dem aktuellen Laufwerk und dem aktuellen Verzeichnis basiert. Das aktuelle Laufwerk und das aktuelle Verzeichnis können sich jederzeit ändern, wenn eine Anwendung ausgeführt wird. Daher kann der von dieser Überladung zurückgegebene Pfad im Voraus nicht ermittelt werden. Um einen deterministischen Pfad zurückzugeben, rufen Sie die GetFullPath(String, String) Überladung auf. Sie können auch die IsPathFullyQualified Methode aufrufen, um festzustellen, ob ein Pfad voll qualifiziert oder relativ ist und daher ein Aufruf GetFullPath erforderlich ist.

Falls path vorhanden, muss der Anrufer jedoch über die Berechtigung verfügen, Pfadinformationen für path. Beachten Sie, dass diese Methode im Gegensatz zu den meisten Mitgliedern der Path Klasse auf das Dateisystem zugreift.

Diese Methode verwendet das aktuelle Verzeichnis und die aktuellen Volumeinformationen, um vollständig zu qualifizieren path. Wenn Sie einen Dateinamen nur in path, GetFullPath gibt den vollqualifizierten Pfad des aktuellen Verzeichnisses zurück.

Wenn Sie einen kurzen Dateinamen übergeben, wird er auf einen langen Dateinamen erweitert.

Wenn ein Pfad keine signifikanten Zeichen enthält, ist er ungültig, es sei denn, er enthält ein oder mehrere "."-Zeichen, gefolgt von einer beliebigen Anzahl von Leerzeichen; dann wird sie als "." oder "." analysiert.

.NET Core 1.1 und höhere Versionen und .NET Framework 4.6.2 und höher unterstützen auch Pfade, die Gerätenamen enthalten, z. B. "\\?\ C:\".

Weitere Informationen zu Dateiformaten für Windows finden Sie unter Dateipfadformate auf Windows Systemen. Eine Liste allgemeiner I /O-Aufgaben finden Sie unter "Allgemeine I/O-Aufgaben".

Siehe auch

Gilt für:

GetFullPath(String, String)

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

public:
 static System::String ^ GetFullPath(System::String ^ path, System::String ^ basePath);
public static string GetFullPath (string path, string basePath);
static member GetFullPath : string * string -> string
Public Shared Function GetFullPath (path As String, basePath As String) As String

Parameter

path
String

Ein relativer Pfad zum Verketten mit basePath.

basePath
String

Der Anfang eines vollqualifizierten Pfads.

Gibt zurück

String

Der absolute Pfad.

Ausnahmen

path oder basePath ist null.

basePath ist kein vollqualifizierter Pfad.

- oder -

path oder basePath enthält mindestens eines der in GetInvalidPathChars() definierten ungültigen Zeichen.

Beispiele

Im folgenden Beispiel wird eine Variable definiert, basePathum das aktuelle Verzeichnis einer Anwendung darzustellen. Anschließend wird sie an die GetFullPath Methode übergeben, um einen vollqualifizierten Pfad zum Datenverzeichnis der Anwendung abzurufen.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string basePath = Environment.CurrentDirectory;
        string relativePath = "./data/output.xml";
 
        // Unexpectedly change the current directory.
        Environment.CurrentDirectory = "C:/Users/Public/Documents/";
        
        string fullPath = Path.GetFullPath(relativePath, basePath);
        Console.WriteLine($"Current directory:\n   {Environment.CurrentDirectory}");
        Console.WriteLine($"Fully qualified path:\n   {fullPath}");
    }
}
// The example displays the following output:
//   Current directory:
//      C:\Users\Public\Documents
//   Fully qualified path:
//      C:\Utilities\data\output.xml
Imports System.IO

Module Program
    Public Sub Main()
        Dim basePath As String = Environment.CurrentDirectory
        Dim relativePath As String = "./data/output.xml"
 
        ' Unexpectedly change the current directory.
        Environment.CurrentDirectory = "C:/Users/Public/Documents/"
        
        Dim fullPath As String = Path.GetFullPath(relativePath, basePath)
        Console.WriteLine($"Current directory:\n   {Environment.CurrentDirectory}")
        Console.WriteLine($"Fully qualified path:\n   {fullPath}")
    End Sub
End Module
' The example displays the following output:
'   Current directory:
'      C:\Users\Public\Documents
'   Fully qualified path:
'      C:\Utilities\data\output.xml

Hinweise

Wenn path es sich um einen leeren Pfad handelt, gibt die Methode zurück basePath. Wenn path es sich um einen vollqualifizierten Pfad handelt, wird die Methode an die GetFullPath(String) Methode übergeben path und das Ergebnis zurückgegeben.

Verwenden Sie diese Methode, um einen deterministischen Pfad basierend auf einem angegebenen Volume und einem rootenden Verzeichnis zurückzugeben, wenn Sie relative Pfade verwenden. Die Verwendung eines vordefinierten basePath anstatt eines basierend auf dem aktuellen Laufwerkverzeichnis schützt vor unerwünschten Dateipfaden, die durch unerwartete Änderungen im aktuellen Laufwerk und Verzeichnis verursacht werden.

Gilt für: