이번 포스팅에서는 간단히 C#에서 날짜별 이전의 폴더(파일)을 삭제하는 방법에 대한 소스코드를 공유하고자 합니다!
소스코드는 아래와 같습니다.
간단히, 삭제하고자 하는 경로를 설정해 해당 날짜를 비교하여 사용자가 삭제 주기를 설정해 주고 그 조건에 부합하는 폴더가 있으면 삭제하는 아주 간단한 소스코드 입니다!
파일을 지우고 싶으시면, DirectoryInfo대신에 FileInfo[] 를 사용하여 바꿔주기만 하면 되니까 응용하시는데에는 큰 무리는 없을 것 같습니다!!
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("해당 Directory에 폴더 삭제 시작");
deleteFolder(@"C:\Users\Desktop\folder");
Console.WriteLine("해당 Directory에 폴더 삭제 끝");
}
private static void deleteFolder(string folderDir)
{
try
{
int deleteDay = 15;
DirectoryInfo di = new DirectoryInfo(folderDir);
if (di.Exists)
{
DirectoryInfo[] dirInfo = di.GetDirectories();
string lDate = DateTime.Today.AddDays
(-deleteDay).ToString("yyyyMMdd");
foreach (DirectoryInfo dir in dirInfo)
{
if (lDate.CompareTo(dir.LastWriteTime.ToString("yyyyMMdd")) > 0)
{
// 폴더 속성이 읽기, 쓰기 설정에 따라 삭제가 안될 수 있음
// 때문에 미리 속성 Normal로 설정
dir.Attributes = FileAttributes.Normal;
dir.Delete(true);
}
}
}
}
catch (Exception) { }
}
}
}