1

我正在尝试删除所有超过 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 或任何其他较小的方法来实现这一点

提前致谢!

4

2 回答 2

0

您可以使用 LINQ 在您的 Linq 代码末尾添加以下内容。

.ToList()
    .ForEach(f => f.Delete());

请记住,即使是在幕后的 Linq 也会使用迭代器;我会照原样离开

也看看这个答案

使用 .NET 删除目录中超过 3 个月的文件

于 2013-01-31T09:48:25.223 回答
0

如果你想要一个衬里,你可以使用:

files.ToList<FileInfo>().ForEach((FileInfo f) => { f.Delete(); });

但这是低效的,真的没有任何意义。您目前正在以正确的方式进行操作。

有关更多信息,请参阅本文

于 2013-01-31T09:55:17.170 回答