Path.GetFullPath Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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 path
verfü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 path
angeben, 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
- Formate von Dateipfaden unter Windows-Systemen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
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, basePath
um 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.