如果我有:
C:\temp\foo\bar\
(注意: bar是一个目录)
我该如何解析出:
bar
如果我有:
C:\temp\foo\bar\
(注意: bar是一个目录)
我该如何解析出:
bar
我搞定了。
DirectoryInfo info = new DirectoryInfo(sourceDirectory_);
string currentDirectoryName = info.Name;
试试看
System.IO.Path.GetFileName("C:\\temp\\foo\\bar");
直接使用:
string dirname = new DirectoryInfo(@"C:\temp\foo\bar\").Name;
根据MSDN文档,这将返回目录的名称,而不是完整路径。看起来一些人撤回了他们的答案,这可能是遗憾的。
这个问题肯定值得提出,因为它具有“授人以鱼不如授人以渔”的优点——它简短、优雅,并且由两个独立的部分组成,一旦学会,就可以应用到其他问题中。
string lastPiece = wholePath.Split('\\').Last();
Last
会在列表为空时抛出异常。
Last
方法?Linq?但它不会抛出异常,因为分割结果至少有一个项目。 - Bitterblueusing System.IO;
string lastFolderName = Path.GetFileName(@"C:\Folder1\Folder2");
string dirname = new DirectoryInfo(path).Name;
Console.WriteLine(dirname);
string dirName = originalDirName.Substring(originalDirName.LastIndexOf("\\") + 1);
当然,如果原始目录名称不以 \ 结尾,并且原始目录名称长度大于零并且实际包含 \ 字符,则应进行一些检查。
试试这个
string DirName = System.IO.Directory.GetParent(@"C:\temp\foo\bar\").Name;
\\
,否则返回 foo。 - Firo