자바에서 파일을 삭제하기 위해 delete() 메서드를 사용합니다.
delete() 메서드로 파일 삭제 처리를 하다가 실패하는 경우가 있습니다.
파일 삭제를 실패하는 경우는 파일이 존재하지 않거나, 삭제 대상 파일을 열고 있는 경우등이 있습니다.
자바에서는 파일을 강제적으로 삭제하는 메서드가 존재하지 않습니다.
만약 파일 삭제를 실패한 경우에는 반복해서 파일을 삭제하도록 구성해야 합니다.
import java.io.File;
import java.lang.Thread;
public class FileClass {
public static void main(String[] args) {
File file = new File("/Users/Shared/java/java.txt");
//파일이 삭제될때 까지 반복 (반복횟수 100번)
for(int i=0; i<100; i++) {
if(file.delete()) {
System.out.println("파일 삭제 성공");
break;
} else {
System.out.println("파일 삭제 실패");
//파일 삭제를 실패한 경우 1초후 다시 실행
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
delete()를 사용해 파일 삭제를 실패한 경우에는 1초간 기다렸다가 다시 삭제를 시도합니다.
반복 횟수는 100번을 시도하도록 했습니다.
반복 횟수와 sleep 시간은 상황에 맞게 조절을 하면 좋습니다.
대부분 파일 삭제에 실패하는 경우가 없는 파일이거나 파일을 열고 있는 중이기 때문에 for 문을 사용해 반복하도록 하면 삭제를 할 수 있습니다.
파일이 없는 경우를 대비해 미리 exists() 메서드를 사용해 존재 여부를 확인하는 것이 좋습니다.
댓글