Path.GetDirectoryName 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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,則為 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 != 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 ''
備註
在大部分情況下,這個方法傳回的字串包含路徑上所有字元,但不包括最後一個目錄分隔符 (s) 。 目錄分隔符可以是 DirectorySeparatorChar 或 AltDirectorySeparatorChar。 如果路徑包含根目錄,例如 「c:\」, null
則會傳回。
此方法不支援使用 “file:” 的路徑。
因為傳回的路徑不包含最後一個目錄分隔字元 (s) ,所以將傳回的路徑傳回 GetDirectoryName 方法會根據結果路徑的後續呼叫截斷一個資料夾層級。 例如,將路徑 「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
為 null
、空白範圍或根 (,例如 \、C:或 \\server\share) ,則為 的目錄資訊path
。
備註
不同於字串多載,這個方法不會正規化目錄分隔符。