Path.GetFullPath Método

Definição

Sobrecargas

Name Description
GetFullPath(String, String)

Devolve um caminho absoluto a partir de um caminho relativo e um caminho base totalmente qualificado.

GetFullPath(String)

Devolve o caminho absoluto para a cadeia de caminho especificada.

GetFullPath(String, String)

Devolve um caminho absoluto a partir 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 a basePath.

basePath
String

O início de um caminho totalmente qualificado.

Devoluções

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 seguinte define uma variável, basePath, para representar o diretório atual de uma aplicação. Depois, passa-o para o GetFullPath método para obter um caminho totalmente qualificado para o diretório de dados da aplicação.

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

Observações

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

Use este método para devolver um caminho determinístico baseado num volume especificado e num diretório enraizado quando estiver a usar caminhos relativos. Usar um diretório pré-definido basePath em vez de um baseado no diretório da unidade atual protege contra caminhos indesejados de ficheiros causados por alterações inesperadas na unidade e no diretório atual.

Aplica-se a

GetFullPath(String)

Devolve o caminho absoluto para a cadeia 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 ficheiro ou diretório para o qual obter informação absoluta do caminho.

Devoluções

A localização totalmente qualificada de path, como "C:\MyFile.txt".

Exceções

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

-ou-

O sistema não conseguiu recuperar o caminho absoluto.

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

path é null.

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

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

Exemplos

O exemplo seguinte demonstra o método GetFullPath numa plataforma de ambiente 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'

Observações

O caminho absoluto inclui toda a informação necessária para localizar um ficheiro ou diretório num sistema.

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

Importante

Se path for um caminho relativo, esta sobrecarga devolve um caminho totalmente qualificado que pode ser baseado no disco atual e no diretório atual. O disco atual e o diretório atual podem mudar a qualquer momento à medida que uma aplicação é executada. Como resultado, o caminho devolvido por esta sobrecarga não pode ser determinado antecipadamente. Para devolver um caminho determinístico, chame a GetFullPath(String, String) sobrecarga. Também pode chamar o IsPathFullyQualified método para determinar se um caminho é totalmente qualificado ou relativo e, portanto, se uma chamada para GetFullPath é necessária.

No entanto, se path existir, o chamador deve ter permissão para obter informação de caminho para path. Note que, ao contrário da maioria dos membros da Path classe, este método acede ao sistema de ficheiros.

Este método utiliza o diretório atual e a informação do volume atual para qualificar pathtotalmente . Se especificar um nome de ficheiro apenas em path, GetFullPath retorna o caminho totalmente qualificado do diretório atual.

Se passar um nome de ficheiro curto, ele é expandido para um nome de ficheiro longo.

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

.NET Core 1.1 e versões posteriores e .NET Framework 4.6.2 e versões posteriores também suportam caminhos que incluem nomes de dispositivos, como "\\?\C:\".

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

Ver também

Aplica-se a