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

例外

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

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

注: .NET for Windows ストア アプリ または ポータブル クラス ライブラリでは、代わりに基底クラスの例外 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 ''

注釈

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

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

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

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

こちらもご覧ください

適用対象

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ディレクトリ情報。、 が の場合 pathnull空のスパン、空のスパン、またはルート (\、C:、\\server\share など)。

注釈

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

こちらもご覧ください

適用対象