다음을 통해 공유


Path.GetDirectoryName 메서드

정의

오버로드

GetDirectoryName(String)

지정된 경로에 대한 디렉터리 정보를 반환합니다.

GetDirectoryName(ReadOnlySpan<Char>)

문자 범위로 표시되는 지정된 경로의 디렉터리 정보를 반환합니다.

GetDirectoryName(String)

Source:
Path.cs
Source:
Path.cs
Source:
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에 대한 디렉터리 정보이며, path이(가) 루트 디렉터리를 나타내거나 null인 경우 null입니다. Empty에 디렉터리 정보가 포함되어 있지 않으면 path이(가) 반환됩니다.

예외

.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: 매개 변수에 path 잘못된 문자가 포함되어 있거나, 비어 있거나, 공백만 포함됩니다.

path 매개변수가 시스템에 정의된 최대 길이보다 깁니다.

참고: Windows 스토어 앱 또는 이식 가능한 클래스 라이브러리용 .NET에서 기본 클래스 예외 를 IOException대신 catch합니다.

예제

다음 예제에서는 Windows 기반 데스크톱 플랫폼에서 메서드를 사용하는 GetDirectoryName 방법을 보여 줍니다.

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 ''

설명

대부분의 경우 이 메서드에서 반환된 문자열은 마지막 디렉터리 구분 문자까지의 경로에 있는 모든 문자로 구성되지만 포함하지는 않습니다. 디렉터리 구분 기호 문자는 또는 AltDirectorySeparatorCharDirectorySeparatorChar 수 있습니다. 경로가 "c:\" null 와 같은 루트 디렉터리로 구성된 경우 가 반환됩니다.

이 메서드는 "file:"을 사용하는 경로를 지원하지 않습니다.

반환된 경로에는 마지막 디렉터리 구분 기호 문자가 포함되지 않으므로 반환된 경로를 메서드로 GetDirectoryName 다시 전달하면 결과 경로에 대한 후속 호출당 하나의 폴더 수준이 잘립니다. 예를 들어 경로 "C:\Directory\SubDirectory\test.txt"을 에 GetDirectoryName 전달하면 "C:\Directory\SubDirectory"가 반환됩니다. 경로 "C:\Directory\SubDirectory"를 에 GetDirectoryName 전달하면 "C:\Directory"가 반환됩니다.

일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.

추가 정보

적용 대상

GetDirectoryName(ReadOnlySpan<Char>)

Source:
Path.cs
Source:
Path.cs
Source:
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디렉터리 정보이거나, 가 , 빈 범위 또는 루트(예: \, C:또는 \\server\share)인 경우 path 빈 범위입니다 null.

설명

문자열 오버로드와 달리 이 메서드는 디렉터리 구분 기호를 정규화하지 않습니다.

추가 정보

적용 대상