0

假设我在一个文件夹中有 4 个文件 昨天的 2 个文件 1 个文件 - 1 mb 2nn 文件 - 2mb 2 个文件今天第一个文件 - 5 mb 第二个文件 - 10 mb

首先,我要检查每个文件的日期,并根据该文件检查大小文件,最小的文件将从文件夹中删除

在我的代码中,我删除了所有具有最小大小的文件,但我想删除具有最小大小的文件

这是我的代码:

 private void DeleteFiles()
    {
        DirectoryInfo di = new DirectoryInfo("E:\\test");
        var files = di.GetFiles();
        var maxFile = files.Max(r => r.Length);

        foreach (FileInfo file in files.Where(r => r.Length < maxFile))
        {
            file.Delete();
        }   
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        this.DeleteFiles();
    }
}
4

1 回答 1

0

像这样的东西应该工作:

private void DeleteFiles()
{
  var di = new DirectoryInfo("E:\\test");
  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();
    }
  }
}
于 2013-03-22T11:01:43.830 回答