使用创建日期过滤器从目录中删除文件
本文关键字:删除 文件 创建日期 过滤器 | 更新日期: 2023-09-27 17:57:00
我正在尝试删除所有超过 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或任何其他较小的方法来实现这一点
提前感谢!
您可以使用 LINQ 在 Linq 代码的末尾添加以下内容。
.ToList()
.ForEach(f => f.Delete());
请记住,即使是幕后的 Linq 也会使用迭代器;我会按原样离开
也看看这个答案
使用 .NET 删除目录中超过 3 个月的文件
如果你想要一个衬里,你可以使用:
files.ToList<FileInfo>().ForEach((FileInfo f) => { f.Delete(); });
但这效率低下,真的没有任何意义。你现在的做法是正确的。
有关详细信息,请参阅此文章。