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

3
我正在使用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
        }

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

当我在Windows资源管理器中查看时,“上次修改”列中显示了正确的日期,但由于某种原因,我的代码拒绝承认相同的日期。我已经尝试过以下两种方法:

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

并且

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

两者结果相同。

我做错了什么?

1个回答

3

您当前的Where表达式会返回昨天此时或之前的所有文件。也许您需要类似这样的内容:

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

这个功能检查文件的最后修改日期的日期部分是否匹配指定输入日期的日期部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接