获取日期范围内修改的所有文件
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)