1

我需要从目录中获取最近创建的文件名。我试过下面的东西。

    DirectoryInfo dirInfo = new DirectoryInfo(@"E:\Result");
    var file = dirInfo.GetFiles("PaperResult*").Select(f => f.CreationTime).First();
    Console.WriteLine(file);

但它正在返回我的日期和时间。它不返回文件名。我在这里想念什么?任何帮助表示赞赏。

4

3 回答 3

7

你想 order-by CreationTime,你不想选择它。

var file = dirInfo.GetFiles("PaperResult*")
    .OrderByDescending(f => f.CreationTime).First();
于 2013-02-24T22:08:39.837 回答
1

您还可以使用 MoreLinq 库MaxBy(..)方法(Nuget 上提供了 MoreLinq,或在此处 https://code.google.com/p/morelinq/

var file = dirInfo.GetFiles("PaperResult*").MaxBy(f=> f.CreationTime);

这个库还有许多其他有用的扩展,非常值得掌握。

于 2013-02-24T22:13:43.673 回答
0
var file = dirInfo.GetFiles("PaperResult*").OrderByDescending(f => f.CreationTime).First();
Console.WriteLine(file);
于 2013-02-24T22:12:02.417 回答