如何返回具有最早日期时间的顶部FileInfo对象

本文关键字:时间 日期 顶部 对象 FileInfo 何返回 返回 | 更新日期: 2023-09-27 18:23:46

我需要能够查询本地目录中添加的文件。包含LINQ查询的方法将返回创建日期最早的文件。因此,操作顺序基本上是先进先出的场景。

请注意,我返回的是一个列表,因为要求可能会更改为返回多个文件。

我为实现这一目标而编写的代码如下:

public static List<FileInfo> GetNextFileToProcess(DirectoryInfo directory)
{
    var files = from f in directory.GetFiles()
                orderby f.CreationTime ascending
                select f;
    return files.Cast<FileInfo>().ToList();
}

问题是,我没有将此列表限制为在确定排序顺序后只包含和返回索引为0的文件。

我需要where子句来限制返回最旧的文件吗?

如何返回具有最早日期时间的顶部FileInfo对象

var files = (from f in directory.EnumerateFiles()
             orderby f.CreationTime ascending
             select f).Take(1);

您说过要返回一个列表,以备以后需要多个文件时使用,那么为什么要限制它呢?您可以使用Take(1),但为什么不将所有内容返回给调用者,并让他们决定他们想要什么呢?

如果您要将其限制为"包含一个元素的列表",那么您不妨让它只返回一个FileInfo——如果您无论如何都想返回多个条目,则需要修改代码。