刪除特定時間之前的檔案

練習題

範例是抓半小時前

using System;
using System.Collections.Generic;
using System.IO;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            
            string path = @"C:\Test Files\";

            if (!Directory.Exists(path))
            {
                Console.WriteLine("指定的路徑不存在");
                Console.ReadLine();
                return;
            }

            string[] files = Directory.GetFiles(path);
            bool flag = false;

            DateTime specificTime = DateTime.Now.AddMinutes(-30);
            Console.WriteLine($"30分鐘前的時間點是:{specificTime}");
            List<string> deleteFiles = new List<string>();

            // 抓出指定目錄下的指定的檔案:修改日期超過 30 分鐘以前
            foreach (var file in files)
            {
                // 如果檔案不存在,就跳過
                if (!File.Exists(file)) continue;

                flag = specificTime > File.GetLastWriteTime(file);

                //Console.WriteLine(string.Format(
                //    "File:{0}\tLastModifiedTime:{1}\t是否早於 30 分鐘前:{2}",
                //    file,
                //    File.GetLastWriteTime(file),
                //    flag
                //));

                if(flag)
                {
                    deleteFiles.Add(file);
                }
            }

            //刪除上述的所有檔案
            deleteFiles.ForEach(f => {
                Console.WriteLine($"刪除檔案:{f}\t該檔案的最後修改時間為:{File.GetLastWriteTime(f)}");
                File.Delete(f);
            });

            Console.ReadLine();
        }
    }
}