0

フォルダに 4 つのファイルがあるとします 昨日の 2 つのファイル 1 つのファイル - 1 mb 2nn ファイル - 2mb 今日の 2 つのファイル 1 つ目のファイル - 5 mb 2 つ目のファイル - 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 に答える