Path.GetDirectoryName Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
GetDirectoryName(String) |
Возвращает сведения о каталоге для указанного пути. |
GetDirectoryName(ReadOnlySpan<Char>) |
Возвращает сведения о каталоге для указанного пути, представленного диапазоном символов. |
GetDirectoryName(String)
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
Возвращает сведения о каталоге для указанного пути.
public:
static System::String ^ GetDirectoryName(System::String ^ path);
public static string GetDirectoryName (string path);
public static string? GetDirectoryName (string? path);
static member GetDirectoryName : string -> string
Public Shared Function GetDirectoryName (path As String) As String
Параметры
- path
- String
Путь к файлу или каталогу.
Возвращаемое значение
Сведения о каталоге для path
, или значение null
, если путь path
указывает на корневой каталог или равен NULL. Возвращает Empty, если параметр path
не содержит сведения о каталоге.
Исключения
.NET Framework и .NET Core версий старше 2.1. Параметр path
содержит недопустимые символы, является пустым или содержит только пробелы.
Имя параметра path
превышает максимально допустимую в системе длину.
Примечание. В .NET для приложений Магазина Windows или переносимой библиотеки классов перехватите исключение базового класса , IOException.
Примеры
В следующем примере показано использование метода на GetDirectoryName
классической платформе Windows.
String^ filePath = "C:\\MyDir\\MySubDir\\myfile.ext";
String^ directoryName;
int i = 0;
while (filePath != nullptr)
{
directoryName = Path::GetDirectoryName(filePath);
Console::WriteLine("GetDirectoryName('{0}') returns '{1}'",
filePath, directoryName);
filePath = directoryName;
if (i == 1)
{
filePath = directoryName + "\\"; // this will preserve the previous path
}
i++;
}
/*
This code produces the following output:
GetDirectoryName('C:\MyDir\MySubDir\myfile.ext') returns 'C:\MyDir\MySubDir'
GetDirectoryName('C:\MyDir\MySubDir') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir\') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir') returns 'C:\'
GetDirectoryName('C:\') returns ''
*/
string filePath = @"C:\MyDir\MySubDir\myfile.ext";
string directoryName;
int i = 0;
while (filePath != null)
{
directoryName = Path.GetDirectoryName(filePath);
Console.WriteLine("GetDirectoryName('{0}') returns '{1}'",
filePath, directoryName);
filePath = directoryName;
if (i == 1)
{
filePath = directoryName + @"\"; // this will preserve the previous path
}
i++;
}
/*
This code produces the following output:
GetDirectoryName('C:\MyDir\MySubDir\myfile.ext') returns 'C:\MyDir\MySubDir'
GetDirectoryName('C:\MyDir\MySubDir') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir\') returns 'C:\MyDir'
GetDirectoryName('C:\MyDir') returns 'C:\'
GetDirectoryName('C:\') returns ''
*/
Dim filepath As String = "C:\MyDir\MySubDir\myfile.ext"
Dim directoryName As String
Dim i As Integer = 0
While filepath <> Nothing
directoryName = Path.GetDirectoryName(filepath)
Console.WriteLine("GetDirectoryName('{0}') returns '{1}'", _
filepath, directoryName)
filepath = directoryName
If i = 1 Then
filepath = directoryName + "\" ' this will preserve the previous path
End If
i = i + 1
End While
'This code produces the following output:
'
' GetDirectoryName('C:\MyDir\MySubDir\myfile.ext') returns 'C:\MyDir\MySubDir'
' GetDirectoryName('C:\MyDir\MySubDir') returns 'C:\MyDir'
' GetDirectoryName('C:\MyDir\') returns 'C:\MyDir'
' GetDirectoryName('C:\MyDir') returns 'C:\'
' GetDirectoryName('C:\') returns ''
Комментарии
В большинстве случаев строка, возвращаемая этим методом, состоит из всех символов в пути до последних символов разделителя каталога, но не включается. Символ разделителя каталогов может иметь значение DirectorySeparatorChar или AltDirectorySeparatorChar. Если путь состоит из корневого каталога, например "c:\", null
возвращается.
Этот метод не поддерживает пути с использованием "file:".
Так как возвращаемый путь не содержит последние символы разделителя каталога, передача возвращаемого пути обратно в GetDirectoryName метод усекает один уровень папки для каждого последующего вызова по пути результата. Например, передача пути "C:\Directory\SubDirectory\test.txt" в возвращает GetDirectoryName "C:\Directory\SubDirectory". Передача этого пути "C:\Directory\SubDirectory" в GetDirectoryName возвращает "C:\Directory".
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
См. также раздел
- Форматы путей к файлам в системах Windows
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
GetDirectoryName(ReadOnlySpan<Char>)
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
- Исходный код:
- Path.cs
Возвращает сведения о каталоге для указанного пути, представленного диапазоном символов.
public:
static ReadOnlySpan<char> GetDirectoryName(ReadOnlySpan<char> path);
public static ReadOnlySpan<char> GetDirectoryName (ReadOnlySpan<char> path);
static member GetDirectoryName : ReadOnlySpan<char> -> ReadOnlySpan<char>
Public Shared Function GetDirectoryName (path As ReadOnlySpan(Of Char)) As ReadOnlySpan(Of Char)
Параметры
- path
- ReadOnlySpan<Char>
Путь для получения сведений о каталоге.
Возвращаемое значение
Сведения о каталоге для path
или пустой диапазон, если path
имеет значение null
, пустой диапазон или корень (например, \, C:или \\server\share).
Комментарии
В отличие от перегрузки строк, этот метод не нормализует разделители каталогов.