C# Path.GetDirectoryName – 获取路径中的目录部分

  • Post category:C#

当我们在做文件处理相关的操作时,有时候会需要获取文件的路径信息,此时我们就可以使用C#中的Path.GetDirectoryName方法。

方法作用

Path.GetDirectoryName方法是一个静态方法,用于获取指定路径字符串包含的目录信息。具体而言,Path.GetDirectoryName方法可以对传入的字符串路径进行处理,将其最后一个目录或文件名去除,返回包含路径中前面的目录部分的字符串。例如,当传入路径为”C:\Program Files\Microsoft Visual Studio\FirstConsole\Program.cs”时,方法将返回”C:\Program Files\Microsoft Visual Studio\FirstConsole”,这就是路径中除去文件名后的目录。

方法用法

Path.GetDirectoryName方法的用法非常简单。大致用法如下:

string directory = Path.GetDirectoryName(path);

其中,参数path是要获取目录信息的路径参数,即需要获取路径的字符串。方法的返回值directory是处理后的路径字符串,即包含路径中前面的目录部分的部分字符串。

方法示例

下面我们来看两个使用Path.GetDirectoryName方法的示例,以便更好地理解它的用法。

示例一

string path = "C:\\Program Files\\Microsoft Visual Studio\\FirstConsole\\Program.cs";
string directory = Path.GetDirectoryName(path);
Console.WriteLine(directory);

输出结果为:

C:\Program Files\Microsoft Visual Studio\FirstConsole

这个示例中,我们首先声明了路径字符串,并用Path.GetDirectoryName方法获取了其去掉文件名后的目录部分。最后我们将获取到的目录字符串打印出来。

示例二

void TraverseFolder(string path)
{
    if (Directory.Exists(path))
    {
        Console.WriteLine("Folder:" + path);
        foreach (string directory in Directory.GetDirectories(path))
            TraverseFolder(directory);
    }
    else
    {
        Console.WriteLine("File:" + path);
    }
}

string path = "C:\\Program Files\\Microsoft Visual Studio";
TraverseFolder(path);

输出结果为:

Folder:C:\Program Files\Microsoft Visual Studio
Folder:C:\Program Files\Microsoft Visual Studio\2019
Folder:C:\Program Files\Microsoft Visual Studio\Shared
Folder:C:\Program Files\Microsoft Visual Studio\Installer
File:C:\Program Files\Microsoft Visual Studio\.NETFramework.props
File:C:\Program Files\Microsoft Visual Studio\.NETFramework.targets

这个示例中,我们通过递归遍历目录下所有的文件和文件夹,并通过判断是否为文件夹来获取当前路径的目录信息。在递归过程中,我们用Path.GetDirectoryName方法获取了传递过来的路径的目录信息,并将其打印出来。

综上所述,Path.GetDirectoryName方法是C#中获取路径的目录信息的一种方法。它的使用非常简单,只需要传入路径字符串即可。