Path.GetFullPath Метод

Определение

Перегрузки

GetFullPath(String)

Возвращает для указанной строки пути абсолютный путь.

GetFullPath(String, String)

Возвращает абсолютный путь из относительного пути и полный базовый путь.

GetFullPath(String)

Возвращает для указанной строки пути абсолютный путь.

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

Параметры

path
String

Файл или каталог, для которых нужно получить сведения об абсолютном пути.

Возвращаемое значение

Полное расположение path, например "C:\MyFile.txt".

Исключения

path — это строка нулевой длины, содержащая только пробелы в системах Windows или один или несколько недопустимых символов, определенных в GetInvalidPathChars().

-или-

Система не может извлечь абсолютный путь.

У вызывающего объекта отсутствуют необходимые разрешения.

path имеет значение null.

только платформа .NET Framework: path содержит двоеточие (":"), которое не является частью идентификатора тома (например, "c:\").

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

Примеры

В следующем примере демонстрируется метод на GetFullPath платформе настольных компьютеров под управлением 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'

Комментарии

Абсолютный путь включает все сведения, необходимые для поиска файла или каталога в системе.

Для существования файла или каталога, указанного параметром path , не требуется. Например, если c:\temp\newdir является текущим каталогом, вызов GetFullPath имени файла, например test.txt возвращает c:\temp\newdir\test.txt. Файл не должен существовать.

Важно!

Если path является относительным путем, эта перегрузка возвращает полный путь, который может быть основан на текущем диске и текущем каталоге. Текущий диск и текущий каталог могут измениться в любое время при выполнении приложения. В результате путь, возвращаемый этой перегрузкой, не может быть определен заранее. Чтобы вернуть детерминированный путь, вызовите перегрузку GetFullPath(String, String) . Можно также вызвать метод , IsPathFullyQualified чтобы определить, является ли путь полным или относительным и, следовательно, требуется ли вызов GetFullPath .

Однако если path он существует, вызывающий объект должен иметь разрешение на получение сведений о пути для path. Обратите внимание, что в отличие от большинства членов Path класса, этот метод обращается к файловой системе.

Этот метод использует текущий каталог и текущие сведения о томе для полного определения path. Если указать имя файла только в path, GetFullPath возвращает полный путь к текущему каталогу.

Если передать короткое имя файла, оно будет развернуто до длинного имени файла.

Если путь не содержит значимых символов, он недопустим, если только он не содержит один или несколько символов ". " за которым следует любое количество пробелов; затем он будет проанализирован как "." или "..".

.NET Core 1.1 и более поздних версий и платформа .NET Framework 4.6.2 и более поздних версий также поддерживают пути, включающие имена устройств, например "\?\C:\".

Дополнительные сведения о форматах пути к файлам в Windows см. в статье Форматы пути к файлам в системах Windows. Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

См. также раздел

Применяется к

GetFullPath(String, String)

Возвращает абсолютный путь из относительного пути и полный базовый путь.

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

Параметры

path
String

Относительный путь для сцепления с basePath.

basePath
String

Начало полного пути.

Возвращаемое значение

Абсолютный путь.

Исключения

Параметр path или basePath имеет значение null.

basePath — это не полный путь.

-или-

Параметр path или basePath содержит один или несколько недопустимых символов, определенных в GetInvalidPathChars().

Примеры

В следующем примере определяется переменная basePath, представляющая текущий каталог приложения. Затем он передает его методу GetFullPath , чтобы получить полный путь к каталогу данных приложения.

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

Комментарии

Если path является пустым путем, метод возвращает basePath. Если path является полным путем, метод передается path методу GetFullPath(String) и возвращает результат.

Используйте этот метод для возврата детерминированного пути на основе указанного тома и корневого каталога при использовании относительных путей. Использование предопределенного basePath , а не на основе текущего каталога диска, защищает от нежелательных путей к файлам, вызванных непредвиденными изменениями в текущем диске и каталоге.

Применяется к