获取具有特定最后修改日期的所有文件的列表

本文关键字:列表 文件 日期 最后 获取 修改 | 更新日期: 2023-09-27 18:15:15

我正在用c#创建一个程序,该程序将获得给定目录中所有的文件在特定日期创建,然后压缩这些文件并将它们存储在另一个目录中。听起来简单地说,我有Teleriks组件的许可证,这样就可以处理压缩业务了。

但是为了选择文件,我使用以下代码:

        //Get all files created yesterday
        DateTime to_date = DateTime.Now.AddDays(-1);
        var directory = new DirectoryInfo(@"C:'Path_Of_Files");
        var files = directory.GetFiles()
                    .Where(file => file.CreationTime <= to_date);
        if (files.Count() > 0)
        {
          //Zipping code here
        }

然而,这给了我目录中的所有文件,所以它不是压缩700个文件,而是压缩文件夹中的所有53,000个文件,这不是我想要的。

当我在Windows资源管理器中查看时,我在"最后修改"列中看到了正确的日期,但由于某种原因,我的代码拒绝承认相同的日期。我都试过了:

        var files = directory.GetFiles()
                    .Where(file => file.CreationTime <= to_date);

        var files = directory.GetFiles()
                    .Where(file => file.LastWriteTime <= to_date);

结果相同。

我做错了什么?

获取具有特定最后修改日期的所有文件的列表

您当前的Where表达式将给出昨天此时之前的所有文件。也许你想要这样的:

var files = directory.GetFiles()
    .Where(file => file.LastWriteTime.Date == to_date.Date);

检查文件最后修改日期的date部分是否与指定输入日期的date部分匹配。