Path.GetFullPath Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
GetFullPath(String) |
Zwraca ścieżkę bezwzględną dla określonego ciągu ścieżki. |
GetFullPath(String, String) |
Zwraca ścieżkę bezwzględną ze ścieżki względnej i w pełni kwalifikowaną ścieżkę bazową. |
GetFullPath(String)
- Źródło:
- Path.Unix.cs
- Źródło:
- Path.Unix.cs
- Źródło:
- Path.Unix.cs
Zwraca ścieżkę bezwzględną dla określonego ciągu ścieżki.
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
Parametry
- path
- String
Plik lub katalog, dla którego można uzyskać informacje o ścieżce bezwzględnej.
Zwraca
W pełni kwalifikowana lokalizacja obiektu path
, na przykład "C:\MyFile.txt".
Wyjątki
path
jest ciągiem o zerowej długości, zawiera tylko białe znaki w systemach Windows lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych w pliku GetInvalidPathChars().
-lub-
System nie może pobrać ścieżki bezwzględnej.
Obiekt wywołujący nie ma wymaganych uprawnień.
path
to null
.
.NET Framework tylko: path
zawiera dwukropek (":"), który nie jest częścią identyfikatora woluminu (na przykład "c:\").
Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.
Przykłady
W poniższym przykładzie pokazano metodę GetFullPath
na platformie klasycznej opartej na systemie Windows.
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'
Uwagi
Ścieżka bezwzględna zawiera wszystkie informacje wymagane do zlokalizowania pliku lub katalogu w systemie.
Plik lub katalog określony przez path
nie jest wymagany do istnienia. Jeśli na przykład c:\temp\newdir jest bieżącym katalogiem, wywołując GetFullPath
nazwę pliku, taką jaktest.txtzwraca wartośćc:\temp\newdir\test.txt. Plik nie musi istnieć.
Ważne
Jeśli path
jest ścieżką względną, to przeciążenie zwraca w pełni kwalifikowaną ścieżkę, która może być oparta na bieżącym dysku i bieżącym katalogu. Bieżący dysk i bieżący katalog mogą ulec zmianie w dowolnym momencie podczas wykonywania aplikacji. W związku z tym nie można wcześniej określić ścieżki zwróconej przez to przeciążenie. Aby zwrócić ścieżkę deterministyczną, wywołaj GetFullPath(String, String) przeciążenie. Możesz również wywołać metodę, IsPathFullyQualified aby określić, czy ścieżka jest w pełni kwalifikowana, czy względna, a zatem czy wywołanie GetFullPath
jest konieczne.
Jeśli path
jednak istnieje, obiekt wywołujący musi mieć uprawnienie do uzyskiwania informacji o ścieżce dla path
elementu . Należy pamiętać, że w przeciwieństwie do większości elementów członkowskich Path klasy ta metoda uzyskuje dostęp do systemu plików.
Ta metoda używa bieżącego katalogu i bieżących informacji o woluminie do pełnej kwalifikacji path
. Jeśli określisz nazwę pliku tylko w path
pliku , GetFullPath
zwraca w pełni kwalifikowaną ścieżkę bieżącego katalogu.
Jeśli przekażesz krótką nazwę pliku, zostanie ona rozwinięta na długą nazwę pliku.
Jeśli ścieżka nie zawiera żadnych znaczących znaków, jest nieprawidłowa, chyba że zawiera co najmniej jeden znak ".", po którym następuje dowolna liczba spacji; następnie zostanie przeanalizowany jako "." lub ".".
.NET Core 1.1 i nowsze wersje oraz .NET Framework 4.6.2 i nowsze wersje obsługują również ścieżki zawierające nazwy urządzeń, takie jak "\\?\C:\".
Aby uzyskać więcej informacji na temat formatów ścieżek plików w systemie Windows, zobacz Formaty ścieżek plików w systemach Windows. Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.
Zobacz też
- Formaty ścieżek plików w systemie Windows
- Plik i Stream we/wy
- Instrukcje: Odczytywanie tekstu z pliku
- Instrukcje: Zapisywanie tekstu w pliku
Dotyczy
GetFullPath(String, String)
- Źródło:
- Path.Unix.cs
- Źródło:
- Path.Unix.cs
- Źródło:
- Path.Unix.cs
Zwraca ścieżkę bezwzględną ze ścieżki względnej i w pełni kwalifikowaną ścieżkę bazową.
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
Parametry
- path
- String
Ścieżka względna do połączenia z basePath
elementem .
- basePath
- String
Początek w pełni kwalifikowanej ścieżki.
Zwraca
Ścieżka bezwzględna.
Wyjątki
path
lub basePath
to null
.
basePath
nie jest w pełni kwalifikowaną ścieżką.
-lub-
path
lub basePath
zawiera co najmniej jeden z nieprawidłowych znaków zdefiniowanych w pliku GetInvalidPathChars().
Przykłady
W poniższym przykładzie zdefiniowano zmienną , basePath
aby reprezentować bieżący katalog aplikacji. Następnie przekazuje ją do GetFullPath
metody, aby uzyskać w pełni kwalifikowaną ścieżkę do katalogu danych aplikacji.
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
Uwagi
Jeśli path
jest pustą ścieżką, metoda zwraca basePath
wartość . Jeśli path
jest w pełni kwalifikowaną ścieżką, metoda przekazuje path
do GetFullPath(String) metody i zwraca wynik.
Użyj tej metody, aby zwrócić ścieżkę deterministyczną na podstawie określonego woluminu i katalogu rooted podczas korzystania ze ścieżek względnych. Użycie wstępnie zdefiniowanej basePath
, a nie jednej na podstawie bieżącego katalogu dysku chroni przed niechcianymi ścieżkami plików spowodowanymi nieoczekiwanymi zmianami na bieżącym dysku i katalogu.