Path.GetFullPath Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
GetFullPath(String) |
Возвращает для указанной строки пути абсолютный путь. |
GetFullPath(String, String) |
Возвращает абсолютный путь из относительного пути и полный базовый путь. |
GetFullPath(String)
- Исходный код:
- 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^ 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. Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
См. также раздел
- Форматы путей к файлам в системах Windows
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
GetFullPath(String, String)
- Исходный код:
- 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
является полным путем, метод передается path
методу GetFullPath(String) и возвращает результат.
Используйте этот метод для возврата детерминированного пути на основе указанного тома и корневого каталога при использовании относительных путей. Использование предопределенного basePath
, а не на основе текущего каталога диска, защищает от нежелательных путей к файлам, вызванных непредвиденными изменениями в текущем диске и каталоге.