[C#] 특정 경로 파일 삭제하는 방법 (날짜별 지우기)



 

안녕하세요~~

 

오늘은 특정 경로에 있는 파일을 시간별로 삭제하는 방법에 대해서 알려드리고자 합니다.

 

해당 로직은 보통 실무에서는 프로그램을 실행시키면 여러가지 로그들이 많이 남겨지는데, 이 로그들이 마냥 쌓이다 보면 디스크 용량도 많이 차지하게 되면서 불필요한 자원들 까지 잡아 먹는 일들이 있는데...이런걸 미연에 방지하고자 파일 삭제 로직을 추가하여 특정 시간이 지나면 자동으로 로그가 지워지도록 할 때 많이 사용합니다.


 

예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Delete

{

    class Program

    {

        static void Main(string[] args)

        {

            DelFile();

        }

 

        private static void DelFile()

        {

            try

            {

                //삭제할 파일들이 있는 경로 설정

                string deletePath = @"D:\Log";

                DirectoryInfo di = new DirectoryInfo(deletePath);

 

                //삭제할 경로에 파일들이 존재한다면

                if(di.Exists)

                {

                    FileInfo[] files = di.GetFiles();

 

                    //생성된지 1주일  파일 지우기 위한 날짜 지정

                    string date = DateTime.Today.AddDays(0).ToString("yyyy-MM-dd");

 

                    foreach(FileInfo file in files)

                    {

                        //파일의 마지막 쓰여진 시간과 date 날짜와 비교

                        if(date.CompareTo(file.LastWriteTime.ToString("yyyy-MM-dd")) > 0)

                        {

                            //만약 마지막으로 쓰여진 시간이 1주일 지난 파일들이라면 

                            //확장자가 .log 파일들 지워라

                            if(System.Text.RegularExpressions.Regex.IsMatch(file.Name, ".log"))

                            {

                                File.Delete(di + "\\" + file.Name);

                                Console.WriteLine("{0} 파일 삭제 완료", file.Name);

                            }

                        }

                    }

                }

            }

            catch(Exception ex)

            {

                Console.WriteLine(ex.ToString());

            }

        }

    }

}

 

Colored by Color Scripter

cs

 

위의 소스코드에서는 삭제할 폴더의 대상을 마지막 파일이 쓰여진 시간이 현재 시간으로부터 7일전에 쓰여진 거라면 삭제되게 로직을 구현했는데, 삭제 기간은 언제든지 숫자만 바꿔서 수정이 가능하므로, 위 코드를 가지고 파일 삭제 로직을 응용하시면 될거에요!ㅎㅎ

 

글 읽어 주셔서 감사합니다ㅎㅎ


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY