如何使用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() 
+0

GetDirectories返回一个字符串,这是行不通的。 – 2013-02-25 17:32:42

+0

不! GetDirectories返回DirectoryInfo数组:http://msdn.microsoft.com/en-us/library/f3e2f6e5.aspx – MarcinJuraszek 2013-02-25 17:33:20

+0

错误,DirectoryInfo.GetDirectories。 – 2013-02-25 17:34:55

你需要得到具体的DirectoryInfo信息来确定的创建时间。尝试这个。

DirectoryInfo di = new DirectoryInfo(rootPath); 
var directory = di.GetDirectories() 
        .OrderByDescending(d => d.CreationTime) 
        .FirstOrDefault();