Path.GetDirectoryName 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
GetDirectoryName(String) |
返回指定路径的目录信息。 |
GetDirectoryName(ReadOnlySpan<Char>) |
返回由字符范围表示的指定路径的目录信息。 |
GetDirectoryName(String)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- 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 和 .NET Core 版本早于 2.1:参数 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 ''
注解
在大多数情况下,此方法返回的字符串由路径中所有字符组成,但不包括最后一个目录分隔符 () 。 目录分隔符可以是 DirectorySeparatorChar 或 AltDirectorySeparatorChar。 如果路径由根目录(如“c:\”)组成, null
则返回 。
此方法不支持使用“file:”的路径。
由于返回的路径不包含最后一个目录分隔符字符 () ,因此将返回的路径传递回 GetDirectoryName 方法会截断每次对结果路径进行后续调用时,将截断一个文件夹级别。 例如,将路径“C:\Directory\SubDirectory\test.txt”传递到 将 GetDirectoryName 返回“C:\Directory\SubDirectory”。 将该路径“C:\Directory\SubDirectory”传递到 中 GetDirectoryName 将返回“C:\Directory”。
有关常见 I/O 任务的列表,请参阅 常见 I/O 任务。
另请参阅
适用于
GetDirectoryName(ReadOnlySpan<Char>)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- 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
目录信息,或空范围(如果 path
为 null
、空范围或根 (,例如 \、C:或 \\server\share) )。
注解
与字符串重载不同,此方法不会规范化目录分隔符。