フォルダーに 4 つのファイルがあるとします。昨日の 2 つのファイル (1 番目のファイル - 1 mb、2 番目のファイル - 2 mb) と、今日の 2 つのファイル (1 番目のファイル - 5 mb、2 番目のファイル - 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 つある場合、それらのファイルを削除し、そのうちの 1 つだけを時間に応じてフォルダーに保存することです。どうやってやるの?