Path.GetFullPath Método

Definição

Sobrecargas

Nome Description
GetFullPath(String, String)

Retorna um caminho absoluto de um caminho relativo e um caminho base totalmente qualificado.

GetFullPath(String)

Retorna o caminho absoluto para a cadeia de caracteres de caminho especificada.

GetFullPath(String, String)

Retorna um caminho absoluto de um caminho relativo e um caminho base totalmente qualificado.

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

Parâmetros

path
String

Um caminho relativo para concatenar para basePath.

basePath
String

O início de um caminho totalmente qualificado.

Retornos

O caminho absoluto.

Exceções

path ou basePath é null.

basePath não é um caminho totalmente qualificado.

-ou-

path ou basePath contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().

Exemplos

O exemplo a seguir define uma variável, basePathpara representar o diretório atual de um aplicativo. Em seguida, ele passa para o GetFullPath método para obter um caminho totalmente qualificado para o diretório de dados do aplicativo.

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

Comentários

Se path for um caminho vazio, o método retornará basePath. Se path for um caminho totalmente qualificado, o método passará path para o GetFullPath(String) método e retornará o resultado.

Use esse método para retornar um caminho determinístico com base em um volume especificado e diretório raiz quando você estiver usando caminhos relativos. Usar um predefinido basePath em vez de um com base no diretório de unidade atual protege contra caminhos de arquivo indesejados causados por alterações inesperadas na unidade e diretório atuais.

Aplica-se a

GetFullPath(String)

Retorna o caminho absoluto para a cadeia de caracteres de caminho especificada.

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

Parâmetros

path
String

O arquivo ou diretório para o qual obter informações absolutas do caminho.

Retornos

O local totalmente qualificado de path, como "C:\MyFile.txt".

Exceções

path é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco em sistemas Windows ou contém um ou mais dos caracteres inválidos definidos em GetInvalidPathChars().

-ou-

O sistema não pôde recuperar o caminho absoluto.

O chamador não tem as permissões necessárias.

path é null.

.NET Framework somente: path contém dois-pontos (":") que não faz parte de um identificador de volume (por exemplo, "c:\").

O caminho especificado, o nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema.

Exemplos

O exemplo a seguir demonstra o método GetFullPath em uma plataforma de área de trabalho baseada em Windows.

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'

Comentários

O caminho absoluto inclui todas as informações necessárias para localizar um arquivo ou diretório em um sistema.

O arquivo ou diretório especificado por path não é necessário existir. Por exemplo, se c:\temp\newdir for o diretório atual, chamar GetFullPath um nome de arquivo como test.txtretornará c:\temp\newdir\test.txt. O arquivo não precisa existir.

Importante

Se path for um caminho relativo, essa sobrecarga retornará um caminho totalmente qualificado que pode ser baseado na unidade atual e no diretório atual. A unidade atual e o diretório atual podem ser alterados a qualquer momento conforme um aplicativo é executado. Como resultado, o caminho retornado por essa sobrecarga não pode ser determinado com antecedência. Para retornar um caminho determinístico, chame a GetFullPath(String, String) sobrecarga. Você também pode chamar o IsPathFullyQualified método para determinar se um caminho é totalmente qualificado ou relativo e, portanto, se uma chamada GetFullPath é necessária.

No entanto, se path existir, o chamador deverá ter permissão para obter informações de caminho para path. Observe que, ao contrário da maioria dos membros da Path classe, esse método acessa o sistema de arquivos.

Esse método usa o diretório atual e as informações de volume atuais para se qualificar pathtotalmente. Se você especificar apenas um nome de arquivo, pathGetFullPath retornará o caminho totalmente qualificado do diretório atual.

Se você passar um nome de arquivo curto, ele será expandido para um nome de arquivo longo.

Se um caminho não contiver caracteres significativos, ele será inválido, a menos que contenha um ou mais caracteres "" seguidos por qualquer número de espaços; em seguida, ele será analisado como "." ou "..".

.NET Core 1.1 e versões posteriores e .NET Framework 4.6.2 e versões posteriores também dão suporte a caminhos que incluem nomes de dispositivo, como "\\?\C:\".

Para obter mais informações sobre formatos de caminho de arquivo no Windows, consulte formatos de caminho de arquivo em sistemas Windows. Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a