Path.GetDirectoryName メソッド

定義

オーバーロード

GetDirectoryName(String)

指定したパスのディレクトリ情報を返します。

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。

GetDirectoryName(String)

指定したパスのディレクトリ情報を返します。

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

ファイルまたはディレクトリのパス。

戻り値

String

path のディレクトリ情報。path がルート ディレクトリを示しているか null である場合は nullpath にディレクトリ情報が含まれていない場合は、Empty を返します。

例外

.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: path パラメーターに無効な文字が含まれているか、空であるか、空白のみが含まれています。

path パラメーターは、システムで定義された最大長を超えています。

注: Windows ストア アプリまたはポータブル クラス ライブラリの .NET では、代わりに基底クラス例外IOExceptionをキャッチします。

次の例では、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 ''

注釈

ほとんどの場合、このメソッドによって返される文字列は、最後のディレクトリ区切り文字までのパス内のすべての文字で構成されますが、最後のディレクトリ区切り文字は含まれません。 ディレクトリ区切り文字には、次のいずれかを DirectorySeparatorChar 指定できます AltDirectorySeparatorChar。 パスがルート ディレクトリ ("c:\" など) で構成されている場合は、 null 返されます。

このメソッドでは、"file:" を使用するパスはサポートされていません。

返されるパスには最後のディレクトリ区切り文字が含まれていないため、返されたパスをメソッドに GetDirectoryName 戻すと、結果パスの後続の呼び出しごとに 1 つのフォルダー レベルが切り捨てられます。 たとえば、パス "C:\DirectorySubDirectory\\test.txt" GetDirectoryName を渡すと、"C:\DirectorySubDirectory\" が返されます。 そのパス "C:\DirectorySubDirectory\" を "C:Directory" に渡すと、 GetDirectoryName "C:\Directory" が返されます。

一般的な I/O タスクの一覧については、 一般的な I/O タスクを参照してください。

こちらもご覧ください

適用対象

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。

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>

ディレクトリ情報を取得するパス。

戻り値

ReadOnlySpan<Char>

ディレクトリ情報 path、または空のスパン (ある場合pathnull空のスパン)、ルート (C:、\\サーバー\共有など\)。

注釈

文字列オーバーロードとは異なり、このメソッドはディレクトリ区切り記号を正規化しません。

こちらもご覧ください

適用対象