我希望根据创建日期从目录中获取特定文件。我希望“.jpeg”文件的创建日期超过30天才能获取。我们该怎么办?我编写了代码,但我陷入了“Where”子句
FileInfo[] fi;
DirectoryInfo di= new DirectoryInfo(@"C:\src_folder");
fi = di.GetFiles("*.jpeg").Where(....
现在在'Where'子句中,我不知道如何获取存在超过30天的文件。
答案 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