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. Список распространенных задач ввода-вывода см. в разделе Распространенные задачи ввода-вывода.
См. также раздел
- форматы пути File в системах 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 , а не одного на основе текущего диска защиты каталогов дисков от нежелательных путей к файлам, вызванным непредвиденными изменениями в текущем диске и каталоге.