Path.GetDirectoryName メソッド

定義

オーバーロード

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

指定したパスのディレクトリ情報を返します。Returns the directory information for the specified path.

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。Returns the directory information for the specified path represented by a character span.

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>

ディレクトリ情報を取得するパス。The path to retrieve the directory information from.

戻り値

ReadOnlySpan<Char>

path のディレクトリ情報。pathnull、空の範囲、またはルート (, C:、または \server\share) の場合は空の範囲。Directory information for path, or an empty span if path is null, an empty span, or a root (such as , C:, or \server\share).

注釈

文字列のオーバーロードとは異なり、このメソッドはディレクトリの区切り記号を正規化しません。Unlike the string overload, this method doesn't normalize directory separators.

こちらもご覧ください

適用対象

GetDirectoryName(String)

指定したパスのディレクトリ情報を返します。Returns the directory information for the specified path.

public:
 static System::String ^ GetDirectoryName(System::String ^ path);
public static string GetDirectoryName (string path);
static member GetDirectoryName : string -> string
Public Shared Function GetDirectoryName (path As String) As String

パラメーター

path
String

ファイルまたはディレクトリのパス。The path of a file or directory.

戻り値

String

path のディレクトリ情報。path がルート ディレクトリを示しているか null である場合は nullDirectory information for path, or null if path denotes a root directory or is null. path にディレクトリ情報が含まれていない場合は、Empty を返します。Returns Empty if path does not contain directory information.

例外

path パラメーターは正しくない文字を含んでおり、空か、空白のみで構成されています。The path parameter contains invalid characters, is empty, or contains only white spaces.

Windows ストア アプリ用 .NET またはポータブル クラス ライブラリでは、基本クラスの例外である IOException を代わりにキャッチします。In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

path パラメーターは、システムで定義された最大長を超えています。The path parameter is longer than the system-defined maximum length.

次の例は、Windows ベースのデスクトッププラットフォームでのメソッドの使用方法を示して GetDirectoryName います。The following example demonstrates using the GetDirectoryName method on a Windows-based desktop platform.

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

注釈

ほとんどの場合、このメソッドによって返される文字列は、パス内の最後のディレクトリ区切り文字までのすべての文字で構成されます。In most cases, the string returned by this method consists of all characters in the path up to, but not including, the last directory separator character(s). ディレクトリの区切り文字には、 DirectorySeparatorChar またはを指定でき AltDirectorySeparatorChar ます。A directory separator character can be either DirectorySeparatorChar or AltDirectorySeparatorChar. パスがルートディレクトリ ("c:" など) で構成されている場合 \ null は、が返されます。If the path consists of a root directory, such as "c:\", null is returned.

このメソッドは、"file:" を使用したパスをサポートしていません。This method does not support paths using "file:".

返されるパスには最後のディレクトリ区切り文字が含まれていないため、返されたパスをメソッドに渡すと、 GetDirectoryName 結果パスでの後続の呼び出しごとに1つのフォルダーレベルが切り捨てられます。Because the returned path does not include the last directory separator character(s), passing the returned path back into the GetDirectoryName method truncates one folder level per subsequent call on the result path. たとえば、パス "C:\Directory\SubDirectory\test.txt" をに渡すと、 GetDirectoryName "C:\Directory\SubDirectory" が返されます。For example, passing the path "C:\Directory\SubDirectory\test.txt" into GetDirectoryName returns "C:\Directory\SubDirectory". このパス "C:\Directory\SubDirectory" をに渡すと、 GetDirectoryName "C:\ ディレクトリ" が返されます。Passing that path, "C:\Directory\SubDirectory", into GetDirectoryName returns "C:\Directory".

一般的な i/o タスクの一覧については、「 一般的な i/o タスク」を参照してください。For a list of common I/O tasks, see Common I/O tasks.

こちらもご覧ください

適用対象