获取具有上次修改日期的所有文件的列表

时间:2013-05-25 22:09:41

标签: c# date file-io zip

我正在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);

两者都有相同的结果。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您当前的Where表达式将在昨天的之前为您提供所有文件。也许你想要这样的东西:

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

这会检查文件上次修改日期的 date 部分是否与指定输入日期的 date 部分匹配。