Path.GetFullPath Метод

Определение

Перегрузки

Имя Описание
GetFullPath(String)

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

GetFullPath(String, String)

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

GetFullPath(String)

Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs

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

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 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. Файл не должен существовать.

Important

Если 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)

Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs
Исходный код:
Path.Unix.cs

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

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 это полный путь, метод передается pathGetFullPath(String) методу и возвращает результат.

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

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