我正在尝试删除超过1小时的所有pdf文件,我正在使用此代码
System.IO.DirectoryInfo directory = new DirectoryInfo(System.Configuration.ConfigurationManager.AppSettings["PDFFilesPath"]);
var files = directory.GetFiles("*.pdf").Where(f => DateTime.Now.Subtract(f.CreationTime).TotalMinutes >= int.Parse(System.Configuration.ConfigurationManager.AppSettings["MinutesOld"]));
foreach (var file in files)
{
file.Delete();
}
代码工作正常且符合预期。
但我想知道是否有任何方法可以不使用foreach或任何其他较小的方法 实现这个
提前致谢!
答案 0 :(得分:0)
您可以使用LINQ在Linq代码的末尾添加以下内容。
.ToList()
.ForEach(f => f.Delete());
请记住,即使是幕后的Linq也会使用迭代器;我会离开,因为它是
也看看这个答案
Delete files older than 3 months old in a directory using .NET
答案 1 :(得分:0)
如果你想要一个衬垫,你可以使用:
files.ToList<FileInfo>().ForEach((FileInfo f) => { f.Delete(); });
但这效率低下,实在没有任何意义。你现在正以正确的方式做到这一点。
有关详细信息,请参阅this article。