如何使用linq获取最新创建的子目录?
问题描述:
我对Linq很新。但我正在尝试编写一个函数,使用Directory.GetDirectories(rootPath).Where(...)
来获取最新创建的子目录。是否有可能以及如何继续?如何使用linq获取最新创建的子目录?
答
var info = new DirectoryInfo(rootPath);
var latestDirectory = info.GetDirectories()
.OrderByDescending(d => d.CreationTime)
.FirstOrDefault();
您可以轻松更改要排序的DirectoryInfo
类属性的名称。
DirectoryInfo.GetDirectories Method
返回System.IO.DirectoryInfo
的数组,因此您可以通过CreationTime
轻松订购该目录并返回第一个。
VB.NET解决方案:
Dim info As New DirectoryInfo(rootPath)
Dim latestDirectory As DirectoryInfo = info.GetDirectories() _
.OrderByDescending(Function(d) d.CreationTime) _
.FirstOrDefault()
答
你需要得到具体的DirectoryInfo信息来确定的创建时间。尝试这个。
DirectoryInfo di = new DirectoryInfo(rootPath);
var directory = di.GetDirectories()
.OrderByDescending(d => d.CreationTime)
.FirstOrDefault();
GetDirectories返回一个字符串,这是行不通的。 – 2013-02-25 17:32:42
不! GetDirectories返回DirectoryInfo数组:http://msdn.microsoft.com/en-us/library/f3e2f6e5.aspx – MarcinJuraszek 2013-02-25 17:33:20
错误,DirectoryInfo.GetDirectories。 – 2013-02-25 17:34:55