如何根据条件从目录​​中获取文件

时间:2015-08-08 06:08:24

标签: c# .net

我希望根据创建日期从目录中获取特定文件。我希望“.jpeg”文件的创建日期超过30天才能获取。我们该怎么办?我编写了代码,但我陷入了“Where”子句

FileInfo[] fi;
DirectoryInfo di= new DirectoryInfo(@"C:\src_folder");

fi = di.GetFiles("*.jpeg").Where(....

现在在'Where'子句中,我不知道如何获取存在超过30天的文件。

4 个答案:

答案 0 :(得分:3)

我认为这可能有所帮助:

FileInfo[] fi;
DirectoryInfo di= new DirectoryInfo(@"C:\src_folder");

DateTime beginning = DateTime.UtcNow.AddDays(-30);
fi = di.GetFiles("*.jpeg")
       .Where(file => file.CreationTimeUtc < beginning)
       .ToArray();

答案 1 :(得分:2)

GetFiles返回FileInfo数组。每个元素都具有CreationTimeUtc属性,您可以使用该属性仅过滤超过30天的项目:

var limit = DateTime.UtcNow.AddDays(-30);
fi = di.GetFiles("*.jpeg").Where(f => f.CreationTimeUtc < limit).ToList();

您希望在30天前修改过的文件使用LastWriteTimeUtc代替CreationTimeUtc

答案 2 :(得分:1)

试试这个:

DateTime from_dt = DateTime.Now.AddDays(-30);
DateTime to_dt = DateTime.Now;

var dir = new DirectoryInfo(@"C:\src_folder");

var files = dir.GetFiles("*.jpeg")
  .Where(file=>file.LastWriteTime >= from_dt && file.LastWriteTime <= to_dt);

答案 3 :(得分:1)

我不知道如果我有你的问题,你想要30天前创建的文件吗?如果是的话:

id  ||  name  ||  unique_key  ||  pub

3       dee         unkey3        demo2
2       Rah         unkey3        demo1 -> Result from table db_like