Path.GetDirectoryName Метод

Определение

Перегрузки

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

Возвращает сведения о каталоге для указанного пути.

GetDirectoryName(ReadOnlySpan<Char>)

Возвращает сведения о каталоге для указанного пути, представленного диапазоном символов.

GetDirectoryName(String)

Исходный код:
Path.cs
Исходный код:
Path.cs
Исходный код:
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 длиннее, чем заданная системой максимальная длина.

Примеры

В следующем примере показано использование метода GetDirectoryName на классической платформе на основе Windows.

string? filePath = @"C:\MyDir\MySubDir\myfile.ext";
string? directoryName;
int i = 0;

while (filePath != null)
{
    directoryName = Path.GetDirectoryName(filePath);
    Console.WriteLine($"GetDirectoryName(\"{filePath}\") returns {directoryName ?? "NULL"}");

    filePath = (i == 1)
        ? directoryName + @"\"  // this will preserve the previous path
        : directoryName;

    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 NULL
*/
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 ''

Комментарии

В большинстве случаев строка, возвращаемая этим методом, состоит из всех символов в пути к, но не включая последние символы разделителя каталогов. Символ разделителя каталогов может быть либо DirectorySeparatorCharAltDirectorySeparatorChar. Если путь состоит из корневого каталога, например c:\, null возвращается.

Этот метод не поддерживает пути с помощью file:.

Так как возвращаемый путь не содержит последние символы разделителя каталогов, передав возвращаемый путь обратно в GetDirectoryName метод усечение одного уровня папки на последующий вызов пути к результату. Например, передав путь "C:\Directory\SubDirectory\test.txt" в GetDirectoryName возвращается "C:\Directory\SubDirectory". Передавая этот путь , "C:\Directory\SubDirectory", в GetDirectoryName возвращается "C:\Directory".

Список распространенных задач ввода-вывода см. в разделе "Общие задачи ввода-вывода".

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

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

GetDirectoryName(ReadOnlySpan<Char>)

Исходный код:
Path.cs
Исходный код:
Path.cs
Исходный код:
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).

Комментарии

В отличие от строковой перегрузки этот метод не нормализует разделители каталогов.

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

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