我有一个看起来像这样的目录:
C:\Users\me\Projects\
在我的应用程序中,我在该路径中附加了一个给定的项目名称:
C:\Users\me\Projects\myProject
之后,我希望能够将其传递给方法。在这个方法里面我也想使用项目名称。解析路径字符串以获取最后一个文件夹名称的最佳方法是什么?
我知道解决方法是将路径和项目名称传递给函数,但我希望我可以将它限制为一个参数。
答案 0 :(得分:39)
你可以这样做:
string dirName = new DirectoryInfo(@"C:\Users\me\Projects\myProject\").Name;
或者像{em>一样使用Path.GetFileName
(有点黑客攻击):
string dirName2 = Path.GetFileName(
@"C:\Users\me\Projects\myProject".TrimEnd(Path.DirectorySeparatorChar));
Path.GetFileName
从路径返回文件名,如果路径以\
结尾,那么它将返回一个空字符串,这就是我使用TrimEnd(Path.DirectorySeparatorChar)
答案 1 :(得分:2)
string path = @"C:\Users\me\Projects\myProject";
string result = System.IO.Path.GetFileName(path);
result = myProject
答案 2 :(得分:0)
如果您像我一样是Linq的瘾君子,您可能会喜欢上它。不管路径字符串的终止如何工作。
public static class PathExtensions
{
public static string GetLastPathSegment(this string path)
{
string lastPathSegment = path
.Split(new string[] {@"\"}, StringSplitOptions.RemoveEmptyEntries)
.LastOrDefault();
return lastPathSegment;
}
}
示例用法:
lastSegment = Paths.GetLastPathSegment(@"C:\Windows\System32\drivers\etc");
lastSegment = Paths.GetLastPathSegment(@"C:\Windows\System32\drivers\etc\");
输出: 等