如果我有:
C:\ TEMP \ FOO \酒吧\
(注意:栏是一个目录)
我该如何解析:
巴
答案 0 :(得分:42)
我明白了。
DirectoryInfo info = new DirectoryInfo(sourceDirectory_);
string currentDirectoryName = info.Name;
答案 1 :(得分:21)
尝试
System.IO.Path.GetFileName("C:\\temp\\foo\\bar");
答案 2 :(得分:11)
只需使用:
string dirname = new DirectoryInfo(@"C:\temp\foo\bar\").Name;
根据MSDN,它返回目录的名称,而不是完整路径。
希望这有助于.........
答案 3 :(得分:6)
看起来很多人已经撤回了他们的答案,这可能是一种耻辱。
这一点值得说明,只有“教人钓鱼”的质量 - 它是短暂的,优雅的,由两个独立的东西组成,一旦学会,就可以重新应用于其他问题。 / p>
string lastPiece = wholePath.Split('\\').Last();
如果列表为空, Last
将抛出。
答案 4 :(得分:5)
执行此操作的最简单方法不创建新的 DirectoryInfo 实例,即使用 Path.GetFileName 静态方法。它位于System.IO。
using System.IO;
string lastFolderName = Path.GetFileName(@"C:\Folder1\Folder2");
该变量将设置为“Folder2”。
创建DirectoryInfo类的新实例效率更高!
答案 5 :(得分:4)
我可以立即想到4种方式
答案 6 :(得分:1)
string dirname = new DirectoryInfo(path).Name;
Console.WriteLine(dirname);
答案 7 :(得分:0)
在Unix中,这被称为基本名称,快速谷歌提出了这个link for a C# version。我确定还有其他人......
答案 8 :(得分:0)
如果上述答案不能满足您的需求,为什么不从最后一个字符串中对字符串进行子串。
string dirName = originalDirName.Substring(originalDirName.LastIndexOf("\\") + 1);
当然,你应该做一些检查,如果originalDirName没有在\结束,如果originalDirName长于零并且实际上包含\ characters。
答案 9 :(得分:0)
试试这个
string DirName = System.IO.Directory.GetParent(@"C:\temp\foo\bar\").Name;