假设我在一个文件夹中有 4 个文件。昨天的 2 个文件(第一个文件 - 1 mb 第二个文件 - 2mb)和今天的 2 个文件(第一个文件 - 5 mb 第二个文件 - 10 mb)。
首先,我想检查每个文件的日期,据此,最小大小的文件将从文件夹中删除。
在我的代码中,我删除了所有具有最小大小的文件,但我想删除每天具有最小大小的文件。
这是我的代码:
private void DeleteFiles()
{
var di = new DirectoryInfo("E:\\UploadFiles");
var files = di.GetFiles().GroupBy(f => f.LastWriteTime.Date);
foreach (var fileGrp in files)
{
var maxFile = fileGrp.Max(r => r.Length);
foreach (FileInfo file in fileGrp.Where(r => r.Length < maxFile))
{
file.Delete();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.DeleteFiles();
}
这段代码运行良好,首先我根据日期对文件进行分组,然后删除除最大文件之外的所有文件。现在我想要的是,如果同一日期有 4 个大小相同的文件,我想删除这些文件并根据时间只将其中一个存储在文件夹中。我怎样才能做到这一点?