Udostępnij za pośrednictwem


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 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 pathelementu . 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 pathpliku , 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ż

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 basePathelementem .

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ą , basePathaby 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 basePathwartość . 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.

Dotyczy