pakage test;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class FileDelete {
//절대 경로이기때문에 final로 선언
public static final String DATA_DIRECTORY = "경로";
public static void delFile(){
// 파일의 경로
File file = new File("경로");
// 파일 수정일
long lastFied = file.lastModified(); //lastModified() -> 마지막 수정일을 가져오는 메소드(long)
// 현재시간
Calendar cals == Calendar.getInstance();
long today = cal.getTimeInMillis();
// 3분전 시간
long pastMin = today - 180000; // 3분 == 180000 millisecond으로 환산
// 경로 내의 파일리스트 목록 가져오기
/**
listFiles() : File file = new File(경로) 를 통해 디렉토리를 열고,
listFiles()를 활용하요 해당 디렉토리의 서브 디렉토리와 파일 목록을 얻을 수 있다.
**/
File[] fileList = file.listFiles();
// for each 문을 통해 파일의 배열만큼 리스트 꺼내기
for(File fileName : fileList){
// 파일명 가져오기
String name = fileName.getName();
// 파일명의 확장자 가져오기 (lastindexOf() 검색순서 우측부터, toLowerCase() 대소문자 포함)
String a = name.substring(name.lastIndexOf(".")+1).toLowerCase();
// 조건. 파일명에 jpg가 포함되어있고
// 파일 수정일이 현재시간에서 3분을 제외한 시간과 같거나 보다 오래되었을 때
if(a.contains("jpg") && pastMin >= lastFied){
// 날짜 형식
String pattern = "yyyyMMdd hh:mm:ss";
SimpleDateFormat sdft = new SimpleDateFormat(pattern);
//마지막 파일수정시간
Date lastModifiedDate = new Date(lastFied);
//3분전 시간
Date pastMins = new Date(pastMin);
//출력해서 확인
System.out.println(lastModifiedDate + "파일 수정일");
System.out.println(pastMins + "과거 시간");
System.out.println(lastModifiedDate + " 해당 파일 삭제 처리...");
// 해당 파일 삭제
fileName.delete();
}
}
public static void main(String[] args){
// 선언한 메소드 호출
delFile();
}
코드에서 사용되는 메소드 및 날짜 관련 클래스 추후에 정리
'JAVA' 카테고리의 다른 글
JAVA - 정규식 + 하이픈(-) 전화번호 (0) | 2021.12.01 |
---|---|
JAVA - 디렉토리 내 해당 확장자 파일만 삭제하기 (0) | 2021.11.26 |
Java - static 변수/메소드 (0) | 2021.10.25 |
Java- 생성자 (0) | 2021.10.25 |
Java - 인스턴스 실습 (0) | 2021.10.22 |