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 を返します。

例外

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

注釈

ほとんどの場合、このメソッドによって返される文字列は、最後のディレクトリ区切り文字までのパス内のすべての文字で構成されますが、最後のディレクトリ区切り文字は含まれません。 ディレクトリ区切り文字には、 または 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 など)。

注釈

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

こちらもご覧ください

適用対象