Path.GetDirectoryName 方法

定義

多載

GetDirectoryName(String)

傳回指定路徑的目錄資訊。

GetDirectoryName(ReadOnlySpan<Char>)

傳回指定路徑字串的目錄資訊,此路徑以字元範圍表示。

GetDirectoryName(String)

來源:
Path.cs
來源:
Path.cs
來源:
Path.cs

傳回指定路徑的目錄資訊。

public static string GetDirectoryName (string path);
public static string? GetDirectoryName (string? path);

參數

path
String

檔案或目錄的路徑。

傳回

path 的目錄資訊;如果 path 表示根目錄或為 null,則為 null。 如果 path 不包含目錄資訊,則傳回 Empty

例外狀況

.NET Framework 和 2.1 之前的 .NET Core 版本:參數 path 包含無效字元、空白或只包含空格符。

path 參數超過系統定義的長度上限。

注意:在 適用於 Windows 市集應用程式的 .NET可攜式類別庫中,改為攔截基類例外狀況 IOException

範例

下列範例示範如何在以 Windows 為基礎的桌面平臺上使用 GetDirectoryName 方法。

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

備註

在大部分情況下,這個方法傳回的字串包含路徑上所有字元,但不包括最後一個目錄分隔符 (s) 。 目錄分隔符可以是 DirectorySeparatorCharAltDirectorySeparatorChar。 如果路徑包含根目錄,例如 「c:\」, null 則會傳回。

此方法不支援使用 “file:” 的路徑。

因為傳回的路徑不包含最後一個目錄分隔字元 (s) ,所以將傳回的路徑傳回 GetDirectoryName 方法會根據結果路徑的後續呼叫截斷一個資料夾層級。 例如,將路徑 「C:\Directory\SubDirectory\test.txt」 傳遞至 GetDirectoryName 會傳回 「C:\Directory\SubDirectory」。。 將該路徑 「C:\Directory\SubDirectory」 傳遞至 GetDirectoryName 會傳回 「C:\Directory」。。

如需一般 I/O 工作的清單,請參閱 一般 I/O 工作

另請參閱

適用於

.NET 9 及其他版本
產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetDirectoryName(ReadOnlySpan<Char>)

來源:
Path.cs
來源:
Path.cs
來源:
Path.cs

傳回指定路徑字串的目錄資訊,此路徑以字元範圍表示。

public static ReadOnlySpan<char> GetDirectoryName (ReadOnlySpan<char> path);

參數

path
ReadOnlySpan<Char>

要從中擷取目錄資訊的路徑。

傳回

如果 pathnull、空白範圍或根 (,例如 \、C:或 \server\share) ,則為 的目錄資訊path

備註

不同於字串多載,這個方法不會正規化目錄分隔符。

另請參閱

適用於

.NET 9 及其他版本
產品 版本
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1