获取日期范围内修改的所有文件

Posted

技术标签:

【中文标题】获取日期范围内修改的所有文件【英文标题】:Getting all files modified within a date range 【发布时间】:2011-11-07 13:42:49 【问题描述】:

我们有一个 asp.net,C# 应用程序,其中需要获取所有修改日期为 b/w startdate 和 enddate 的文件。我们怎样才能做到这一点? 还想获取最近 3 个月未修改的所有文件?

【问题讨论】:

【参考方案1】:

根据this post,您可以这样做:

var directory = new DirectoryInfo(your_dir);
DateTime from_date = DateTime.Now.AddMonths(-3);
DateTime to_date = DateTime.Now;
var files = directory.GetFiles()
  .Where(file=>file.LastWriteTime >= from_date && file.LastWriteTime <= to_date);

【讨论】:

也喜欢@nicholas-carey 的这个答案here 建议Directory.EnumerateFiles() 超过Directory.GetFiles() 又一次投反对票,认真的吗?请投反对票,留下说明我的帖子不好的原因,以便我最终修改它并为社区提供更好的答案! 我怀疑使用了“GetFiles”。这首先获取所有文件的完整列表,然后将完整的数组传递给 where 子句。在具有大量文件的文件系统上,这将是低效的。 Enumeratefiles 将每个文件传递到 where 子句。【参考方案2】:

看看这个问题并回答:

How to find the most recent file in a directory using .NET, and without looping?

您可以从那里开始,并将您的 where 子句添加到答案中提供的 LINQ 查询中:)

【讨论】:

以上是关于获取日期范围内修改的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

pandas使用bdate_range函数获取起始时间(start)和结束时间(end)范围内的所有周末日期(weekends day)

如何从 Laravel 日期范围内未创建的数据库中获取记录?

SQL从日期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)

如何获取日期范围内的缺失值?

NSPredicate 获取具有 NSDate 日期范围内的日期属性的核心数据对象

获取时间范围内特定日期的数据,时间范围有微小的差异