Language/C#

[C#] 파일 생성 일자 비교 후 이전 날짜 파일 삭제하기

잔소리대마왕 2023. 3. 14. 14:57

C#을 사용하여 일정 기간 이전에 만들어진 로그 파일을 삭제하는 서비스를 만들어보았습니다.

  • 삭제할 기준의 날짜를 설정한다.
  • 해당 기준 이전의 파일이 txt파일 경우에 삭제한다.

 

 

1. C# 소스

try
{
    // 제거할 날짜 범위 (15일)
    byte Days = CAppConfig.cServiceInfo.MAX_STORAGE_DATE;
    string deletePath = @"C:\\Logs\\";

    DirectoryInfo di = new DirectoryInfo(deletePath);
    if (di.Exists)
    {
        DirectoryInfo[] dirInfo = di.GetDirectories();
        // 삭제 날짜 기준 -days(15일)
        string IDate = DateTime.Today.AddDays(-Days).ToString("yyyyMMdd");
        foreach (DirectoryInfo dir in dirInfo)
        {
            foreach (FileInfo file in dir.GetFiles())
            {
                // 확장자
                if(file.Extension != ".txt")
                {
                    continue;
                }

                // 해당 날짜 보다 작으면 삭제
                if (IDate.CompareTo(file.LastWriteTime.ToString("yyyyMMdd")) > 0)
                {
                    file.Delete();
                    logger.LogInformation($"[제거된 파일] {file.Name}");
                }
            }


            logger.LogInformation($"{dir.Name} 디렉토리 완료");
        }

    }
}