[C#] 특정 경로 파일 삭제하는 방법 (날짜별 지우기)
- C#/C# 문법
- 2019. 8. 19. 02:00
안녕하세요~~
오늘은 특정 경로에 있는 파일을 시간별로 삭제하는 방법에 대해서 알려드리고자 합니다.
해당 로직은 보통 실무에서는 프로그램을 실행시키면 여러가지 로그들이 많이 남겨지는데, 이 로그들이 마냥 쌓이다 보면 디스크 용량도 많이 차지하게 되면서 불필요한 자원들 까지 잡아 먹는 일들이 있는데...이런걸 미연에 방지하고자 파일 삭제 로직을 추가하여 특정 시간이 지나면 자동으로 로그가 지워지도록 할 때 많이 사용합니다.
예제 코드
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()); } } } }
|
위의 소스코드에서는 삭제할 폴더의 대상을 마지막 파일이 쓰여진 시간이 현재 시간으로부터 7일전에 쓰여진 거라면 삭제되게 로직을 구현했는데, 삭제 기간은 언제든지 숫자만 바꿔서 수정이 가능하므로, 위 코드를 가지고 파일 삭제 로직을 응용하시면 될거에요!ㅎㅎ
글 읽어 주셔서 감사합니다ㅎㅎ
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] 자료구조 Stack 이란? (0) | 2019.08.30 |
---|---|
[C# 문법] Linq Join 구문 사용 예제 (0) | 2019.08.20 |
[C# 문법] LINQ 그룹화와 정렬 기능 사용방법 (0) | 2019.08.16 |
[C# 문법] Log4Net 사용하여 Log 남기기 (0) | 2019.08.14 |
[C#] 최대값, 최소값 구하는 방법 (0) | 2019.08.10 |
이 글을 공유하기