如何获取列表中最后一个子目录的名称

时间:2016-11-03 08:24:40

标签: c# asp.net linq io directory

如何获取最后一个文件夹的名称。 我尝试这样的事情:

var directories = Directory.GetDirectories("D:\\" + new DateTime(2016, 11, 2).ToString("d-MM-yyyy"))
                           .ToList()
                           .ForEach(a => a.Split('/')[1]);

1 个答案:

答案 0 :(得分:3)

使用.Last

var fullName = Directory.GetDirectories("C:\\").Last();
var folderName = fullName.Substring(fullName.LastIndexOf('\\')+1);

OrderByDescending

var fullName = Directory.GetDirectories("C:\\")
                        .OrderByDescending(directory => /* some predicate */)
                        .FirstOrDefault();
if(fullName != null)
    var folderName = fullName.Substring(fullName.LastIndexOf('\\')+1);

对于.Last,您也可以提供谓词

将其放入您的代码中,使用.Select代替ForEach并链接下一个函数:

var lastDirectory = Directory
                        .GetDirectories("D:\\" + new DateTime(2016, 11, 2).ToString("d-MM-yyyy"))
                        .Select(directory => directory.Substring(directory.LastIndexOf('\\')+1))
                        .Last();

要搜索所有嵌套目录,请使用GetDirectories的不同重载来指定SearchOptions

Directory.GetDirectories("path", "pattern", SearchOption.AllDirectories)