从完整文件路径获取文件夹名称

时间:2011-03-08 06:51:25

标签: c# directory

如何从应用程序的完整路径获取文件夹名称?

这是下面的文件路径,

c:\projects\root\wsdlproj\devlop\beta2\text

此处“text”是文件夹名称。

如何从此路径获取该文件夹名称?

11 个答案:

答案 0 :(得分:184)

请参阅DirectoryInfo.Name

string dirName = new DirectoryInfo(@"c:\projects\roott\wsdlproj\devlop\beta2\text").Name;

答案 1 :(得分:26)

我认为你想从文件路径获取父文件夹名称。它很容易获得。 一种方法是创建FileInfo类型对象并使用其Directory属性。

示例:

FileInfo fInfo = new FileInfo("c:\projects\roott\wsdlproj\devlop\beta2\text\abc.txt");

String dirName = fInfo.Directory.Name;

答案 2 :(得分:12)

试试这个

var myFolderName = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
var result = Path.GetFileName(myFolderName);

答案 3 :(得分:9)

你可以用这个:

string path = @"c:\projects\roott\wsdlproj\devlop\beta2\text";
string lastDirectory = path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last();

答案 4 :(得分:3)

我认为除了进入文件系统以确定text.txt是目录还是文件之外没有办法。如果你想要简单的东西,也许你可以使用:

s.Substring(s.LastIndexOf(@"\"));

答案 5 :(得分:3)

只需使用Path.GetFileName

此处-从文件夹的完整路径中提取文件夹名称:

string folderName = Path.GetFileName(@"c:\projects\root\wsdlproj\devlop\beta2\text");//Return "text"

还有一些额外的内容-从文件的完整路径中提取文件夹名称:

string folderName = Path.GetFileName(Path.GetDirectoryName(@"c:\projects\root\wsdlproj\devlop\beta2\text\GTA.exe"));//Return "text"

答案 6 :(得分:2)

在这种情况下,您要获取的文件存储在strpath变量中:

string strPath = Server.MapPath(Request.ApplicationPath) + "/contents/member/" + strFileName;

答案 7 :(得分:1)

这也可以这样做;

var directoryName = System.IO.Path.GetFileName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");

答案 8 :(得分:1)

这是一种替代方法,无需创建DirectoryInfo对象即可使用。关键点是GetFileName()在路径中没有尾部斜杠时起作用。

var name = Path.GetFileName(path.TrimEnd(Path.DirectorySeparatorChar));

示例:

var list = Directory.EnumerateDirectories(path, "*")
        .Select(p => new
        {
            id = "id_" + p.GetHashCode().ToString("x"),
            text = Path.GetFileName(p.TrimEnd(Path.DirectorySeparatorChar)),
            icon = "fa fa-folder",
            children = true
        })
        .Distinct()
        .OrderBy(p => p.text);

答案 9 :(得分:0)

基于previous answers(但固定)

using static System.IO.Path;

var dir = GetFileName(path?.TrimEnd(DirectorySeparatorChar, AltDirectorySeparatorChar));

.NET sourceGetFileName的解释:

  

返回给定路径的名称和扩展名。所结果的   字符串包含最后一个之后的路径字符   中的反斜杠(“ \”),斜杠(“ /”)或冒号(“:”)字符   路径。如果path,则结果字符串是整个路径   删除结尾的斜杠,斜杠或冒号字符后,不包含反斜杠。所结果的   如果path为null,则字符串为null。

答案 10 :(得分:-3)

Path.GetDirectoryName(@"c:\projects\roott\wsdlproj\devlop\beta2\text");

MSDN: Path.GetDirectoryName Method