Freigeben über


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)

Quelle:
Path.Unix.cs
Quelle:
Path.Unix.cs
Quelle:
Path.Unix.cs

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

Der vollqualifizierte Speicherort von path, z. B. "C:\MyFile.txt".

Ausnahmen

path ist eine Zeichenfolge der Länge Null, enthält nur Leerzeichen auf Windows-Systemen oder enthält mindestens ein ungültiges Zeichen, das in GetInvalidPathChars()definiert ist.

- oder -

Das System konnte den absoluten Pfad nicht abrufen.

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

path ist null.

nur .NET Framework: path enthält einen Doppelpunkt (":"), der nicht Teil eines Volumebezeichners ist (z. B. "c:\").

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 in einem System erforderlich sind.

Die von path angegebene Datei oder das Verzeichnis muss nicht vorhanden sein. Wenn z. B. c:\temp\newdir das aktuelle Verzeichnis ist, gibt der Aufruf GetFullPath eines Dateinamens wie test.txtc:\temp\newdir\test.txtzurück. Die Datei muss nicht vorhanden sein.

Wichtig

Wenn path ein relativer Pfad ist, gibt diese Überladung einen vollqualifizierten Pfad zurück, der auf dem aktuellen Laufwerk und aktuellen Verzeichnis basieren kann. 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 nicht im Voraus bestimmt werden. Rufen Sie die GetFullPath(String, String) Überladung auf, um einen deterministischen Pfad zurückzugeben. Sie können auch die IsPathFullyQualified -Methode aufrufen, um zu bestimmen, ob ein Pfad voll qualifiziert oder relativ ist und daher ein Aufruf von GetFullPath erforderlich ist.

Falls vorhanden, path muss der Aufrufer jedoch über die Berechtigung zum Abrufen von Pfadinformationen für pathverfügen. Beachten Sie, dass diese Methode im Gegensatz zu den meisten Membern 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 nur einen Dateinamen in pathangeben, GetFullPath gibt den vollqualifizierten Pfad des aktuellen Verzeichnisses zurück.

Wenn Sie einen kurzen Dateinamen übergeben, wird dieser zu einem 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 er entweder als "." oder ".." analysiert.

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

Weitere Informationen zu Dateiformaten unter Windows finden Sie unter Dateiformate auf Windows-Systemen. Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Weitere Informationen

Gilt für:

GetFullPath(String, String)

Quelle:
Path.Unix.cs
Quelle:
Path.Unix.cs
Quelle:
Path.Unix.cs

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

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 die Variable definiert, basePathum das aktuelle Verzeichnis einer Anwendung darzustellen. Anschließend wird er 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 ein leerer Pfad ist, gibt die -Methode zurück basePath. Wenn path ein vollqualifizierter Pfad ist, übergibt path die Methode an die GetFullPath(String) -Methode und gibt das Ergebnis zurück.

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

Gilt für: