Sdílet prostřednictvím


Path.GetFullPath Metoda

Definice

Přetížení

GetFullPath(String)

Vrátí absolutní cestu pro zadaný řetězec cesty.

GetFullPath(String, String)

Vrátí absolutní cestu z relativní cesty a plně kvalifikovanou základní cestu.

GetFullPath(String)

Zdroj:
Path.Unix.cs
Zdroj:
Path.Unix.cs
Zdroj:
Path.Unix.cs

Vrátí absolutní cestu pro zadaný řetězec cesty.

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

Soubor nebo adresář, pro který chcete získat absolutní informace o cestě.

Návraty

Plně kvalifikované umístění path, například "C:\MyFile.txt".

Výjimky

path je řetězec nulové délky, obsahuje pouze prázdné znaky v systémech Windows nebo obsahuje jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().

-nebo-

Systém nemohl načíst absolutní cestu.

Volající nemá požadovaná oprávnění.

path je null.

Pouze rozhraní .NET Framework: path obsahuje dvojtečku (":"), která není součástí identifikátoru svazku (například "c:\").

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

Příklady

Následující příklad ukazuje metodu GetFullPath na desktopové platformě se systémem 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'

Poznámky

Absolutní cesta obsahuje všechny informace potřebné k vyhledání souboru nebo adresáře v systému.

Soubor nebo adresář určený parametrem path není nutné, aby existoval. Pokud je například aktuální adresář c:\temp\newdir , volání GetFullPath na název souboru, například test.txt , vrátí c:\temp\newdir\test.txt. Soubor nemusí existovat.

Důležité

Pokud path je relativní cesta, vrátí toto přetížení plně kvalifikovanou cestu, která může být založena na aktuální jednotce a aktuálním adresáři. Aktuální jednotka a aktuální adresář se můžou při spuštění aplikace kdykoli změnit. V důsledku toho nelze předem určit cestu vrácenou tímto přetížením. Chcete-li vrátit deterministický způsob, zavolejte GetFullPath(String, String) přetížení. Můžete také volat metodu IsPathFullyQualified k určení, zda je cesta plně kvalifikovaná nebo relativní, a proto zda GetFullPath je volání nutné.

Pokud path však existuje, volající musí mít oprávnění k získání informací o cestě pro path. Všimněte si, že na rozdíl od většiny Path členů třídy tato metoda přistupuje k systému souborů.

Tato metoda používá aktuální adresář a aktuální informace o svazku k plné kvalifikaci path. Pokud zadáte název souboru pouze v path, GetFullPath vrátí plně kvalifikovanou cestu k aktuálnímu adresáři.

Pokud předáte krátký název souboru, rozbalí se na dlouhý název souboru.

Pokud cesta neobsahuje žádné významné znaky, je neplatná, pokud neobsahuje jeden nebo více znaků "." následovaných libovolným počtem mezer; pak bude analyzován jako "." nebo "..".

.NET Core 1.1 a novější verze a .NET Framework 4.6.2 a novější verze také podporují cesty, které obsahují názvy zařízení, například \\?\C:\.

Další informace o formátech cest k souborům ve Windows najdete v tématu Formáty cest k souborům v systémech Windows. Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.

Viz také

Platí pro

GetFullPath(String, String)

Zdroj:
Path.Unix.cs
Zdroj:
Path.Unix.cs
Zdroj:
Path.Unix.cs

Vrátí absolutní cestu z relativní cesty a plně kvalifikovanou základní cestu.

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

Relativní cesta pro zřetězení s basePath.

basePath
String

Začátek plně kvalifikované cesty.

Návraty

Absolutní cesta.

Výjimky

path nebo basePath je null.

basePath není plně kvalifikovaná cesta.

-nebo-

path nebo basePath obsahuje jeden nebo více neplatných znaků definovaných v GetInvalidPathChars().

Příklady

Následující příklad definuje proměnnou basePath, která představuje aktuální adresář aplikace. Pak ho GetFullPath předá metodě, aby získala plně kvalifikovanou cestu k datovému adresáři aplikace.

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

Poznámky

Pokud path je cesta prázdná, vrátí basePathmetoda . Pokud path je plně kvalifikovaná cesta, metoda předá pathGetFullPath(String) metodě a vrátí výsledek.

Tato metoda slouží k vrácení deterministické cesty založené na zadaném svazku a kořenovém adresáři, pokud používáte relativní cesty. Použití předdefinované basePath složky založené na aktuálním adresáři jednotky chrání před nežádoucími cestami k souborům způsobenými neočekávanými změnami na aktuální jednotce a adresáři.

Platí pro