C#:从目录中获取 5 个最新(最后修改)的文件

标签 c# linq file directory

有没有一种方法可以使用 Array 存储目录中最后修改的 5 个文件的文件位置?

我目前正在使用以下代码获取最后一个文件:

DateTime lastHigh = new DateTime(1900,1,1);
string highDir;
foreach (string subdir in Directory.GetDirectories(path)){
    DirectoryInfo fi1 = new DirectoryInfo(subdir);
    DateTime created = fi1.LastWriteTime;

    if (created > lastHigh){
        highDir = subdir;
        lastHigh = created;
    }
}

我将使用 Array 将多个文件作为附件发送到一个电子邮件地址。

更新

我目前正在使用以下代码在 1 分钟后获取最后修改的文件:

string myDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures),
                  "Test Folder");
var directory = new DirectoryInfo(myDirectory);
DateTime from_date = DateTime.Now.AddMinutes(-1);
DateTime to_date = DateTime.Now;
var files = directory.GetFiles().Where(file => file.LastWriteTime >= from_date && file.LastWriteTime <= to_date);

我想存储来自 files

的文件名列表

最佳答案

这是使用 LINQ 执行此操作的一般方法:

 Directory.GetFiles(path)
             .Select(x => new FileInfo(x))
             .OrderByDescending(x => x.LastWriteTime)
             .Take(5)
             .ToArray()

我怀疑这不是您想要的,因为您的代码示例似乎在不同的任务中工作,但在一般情况下,这会满足您的问题标题的要求。

关于C#:从目录中获取 5 个最新(最后修改)的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388141/

相关文章:

c# - 在 C# 中将关系数据库映射到 XML

c# - 通过类接口(interface)访问类的属性

linq - 我可以使用 linq 将表连接到列表吗?

file - 如何获得自己的文件格式的文件以具有自己的动态图标?

android - 如何在android中删除之前检查文件

c# - 每 n 秒调用一次存储过程

c# - CloudStorageAccount.Parse(connString) 表示找不到 CloudStorageAccount.cs

Azure 表存储 - 表服务查询检索并返回 10 个实体,直到最后一个实体

c# - 知道 Iqueryable 的元素数量

C++ 文件处理(结构)