根据日期过滤文件夹文件

时间:2016-05-04 10:29:08

标签: c# asp.net .net

DirectoryInfo info = new DirectoryInfo(Directory Name);
//... Other code 
var allLines = info.GetFiles("*.dat")
                          .Where(p => p.CreationTime.Date ==DateTime.Today.Date)
                           .SelectMany(p => File.ReadAllLines(p.FullName));

我正在尝试获取今天创建的文件。但是使用这段代码,我得到文件夹中存在的超过3个月的所有.dat文件。任何帮助!! C#中的新手

3 个答案:

答案 0 :(得分:0)

试试这个

我从您提供的linq中了解到,您需要的是.dat类型的文件,其创建日期为今天并执行写入操作。

   var allLines = info.GetFiles("*.dat")
                      .Where(p => p.CreationTime.Date > DateTime.Today.Date.AddMinutes(-1))
                       .SelectMany(p => File.ReadAllLines(p.FullName));

答案 1 :(得分:0)

看起来像你的:

.SelectMany(p => File.ReadAllLines(p.FullName));

错了。

为什么你不使用:

info.GetFiles("*.dat").Where(p => p.CreationTime.Date == DateTime.Today.Date).Select(p => p.FullName);

您将获得文件列表

答案 2 :(得分:0)

代码运行正常。唯一的问题是,我不得不删除以前没有涉及日期过滤的编译/调试文件。因此即使是干净的解决方案也是如此。重建解决方案已经完成。