Path.GetFullPath Metoda

Definicja

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 mają być uzyskiwane informacje o ścieżce bezwzględnej.

Zwraca

W pełni kwalifikowana lokalizacja elementu path, na przykład "C:\MyFile.txt".

Wyjątki

path to ciąg 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.

tylko .NET Framework: 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 program nie jest wymagany do istnienia. Jeśli na przykład c:\temp\newdir jest bieżącym katalogiem, wywołanie GetFullPath nazwy pliku, takiego jak test.txt zwraca 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, gdy aplikacja jest wykonywana. 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żna również wywołać metodę IsPathFullyQualified , aby określić, czy ścieżka jest w pełni kwalifikowana, czy względna, i w związku z tym, czy wywołanie GetFullPath jest konieczne.

Jeśli path jednak istnieje, obiekt wywołujący musi mieć uprawnienia do uzyskiwania informacji o ścieżce dla elementu path. Należy pamiętać, że w przeciwieństwie do większości składowych 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 pathpliku , GetFullPath zwraca w pełni kwalifikowaną ścieżkę bieżącego katalogu.

Jeśli przekażesz krótką nazwę pliku, zostanie ona rozszerzona na długą nazwę pliku.

Jeśli ścieżka nie zawiera żadnych znaków znaczących, jest nieprawidłowa, chyba że zawiera co najmniej jeden znak ".", po którym następuje dowolna liczba spacji; następnie zostanie on przeanalizowany jako "." lub ".".

Program .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ż

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

basePath
String

Początek w pełni kwalifikowanej ścieżki.

Zwraca

Ścieżka bezwzględna.

Wyjątki

path lub basePath ma wartość 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ą , basePathw celu reprezentowania bieżącego katalogu 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 wartość basePath. Jeśli path jest w pełni kwalifikowaną ścieżką, metoda przekazuje path do GetFullPath(String) metody i zwraca wynik.

Ta metoda umożliwia zwrócenie ścieżki deterministycznej na podstawie określonego woluminu i katalogu rooted podczas korzystania ze ścieżek względnych. Używanie wstępnie zdefiniowanej basePath , a nie opartej na bieżących katalogach dysków ochrony przed niepożądanymi ścieżkami plików spowodowanymi nieoczekiwanymi zmianami na bieżącym dysku i katalogu.

Dotyczy