从完整路径获取目录

leo*_*ora 22 c# directory

如果我有:

C:\ TEMP \富\酒吧\

(注意: bar是一个目录)

我怎么解析出来:

酒吧

leo*_*ora 42

我想到了.

DirectoryInfo info = new DirectoryInfo(sourceDirectory_);
string currentDirectoryName = info.Name;
Run Code Online (Sandbox Code Playgroud)


Pro*_*m.X 21

尝试

System.IO.Path.GetFileName("C:\\temp\\foo\\bar");
Run Code Online (Sandbox Code Playgroud)


nor*_*rtB 11

只需使用:

string dirname = new DirectoryInfo(@"C:\temp\foo\bar\").Name;      
Run Code Online (Sandbox Code Playgroud)

根据MSDN,它返回目录的名称,而不是完整路径.

链接到MSDN Library

希望这可以帮助.........


Dan*_*ker 6

看起来很多人已经撤回了他们的答案,这可能是一种耻辱.

这个是值得说明的,只是为了"教人钓鱼"的质量 - 它简短,优雅,由两个独立的东西组成,一旦学会,可以重新应用于其他问题.

string lastPiece = wholePath.Split('\\').Last();
Run Code Online (Sandbox Code Playgroud)

Last 如果列表为空,将抛出.

  • 也许最好使用(System.IO)PathSeparator? (2认同)

Mat*_* M. 5

创建新DirectoryInfo实例的情况下执行此操作的最简单方法是使用Path.GetFileName静态方法.它位于System.IO中.

using System.IO;

string lastFolderName = Path.GetFileName(@"C:\Folder1\Folder2");
Run Code Online (Sandbox Code Playgroud)

该变量将设置为"Folder2".

这比创建DirectoryInfo类的新实例要高效得多!

  • 为了避免最后一个反斜杠可能返回一个空字符串的情况我正在使用Path.GetDirectoryName(@"C:\ Folder1\Folder2"); 因为它将返回上述情况下的Folder2和Path.GetDirectoryName(@"C:\ Folder1\Folder2 \"); 案件.谢谢. (3认同)