반응형
파일 및 디렉터리 삭제 방법
디렉터리 안의 파일을 모두 제거해야 디렉터리가 삭제되므로 파일먼저 삭제.
String datePath = "\\src\\main\\resources\\static\\assets\\data\\data1";
File dateFolder = new File(datePath);
File dir[] = dateFolder.listFiles();
try {
for (int i = 0; i < dir.length; i++) {
dir[i].delete(); //파일 삭제
}
dateFolder.delete(); //폴더 삭제
}catch (Exception e){
e.printStackTrace();
}
Exception 에러도 없이 삭제가 안 되는 파일이 있었다.
이유 : 해당 파일을 어딘가에서 붙잡고 있음.
delete 이전에 파일을 읽어오는 소스가 있는데 IO stream을 안 닫아 줬기 때문.
///수정 전
/////Scanner를 닫아야 하는데 안 닫았음.
try{
Scanner commentScan = new Scanner(new File(dir[i] + "\\comment"));
mtDto.setComment(commentScan.nextLine());
}catch(Exception e){
}
try catch를 사용하는 경우 try에서도 닫고 catch에서도 닫아줘야함...
결론 : try-with-resource를 사용하면 예외가 발생했든 안 했든간에 사용했던 리소스 객체를 자동으로 닫아주므로
try with resource를 사용하자.
///수정 후
try ( Scanner commentScan = new Scanner(new File(dir[i] + "\\comment")); )
{
mtDto.setComment(commentScan.nextLine());
}catch(Exception e){
}
반응형
'코딩 관련 > Java' 카테고리의 다른 글
[JAVA] java AES256 암호화 / AES256 encode / AES256 decode (0) | 2022.02.23 |
---|---|
[JAVA] response entity, api 데이터 조회, api json 데이터 작업 (0) | 2021.12.17 |
[Java] 현재 경로 / 디렉터리 경로 / 현재 디렉터리 / 디렉터리 내용 출력 (0) | 2021.11.09 |
[JAVA] HashMap null체크 / Map key가 null / map null 접근 (0) | 2021.09.14 |
[JAVA] double 숫자 E 없애기 / 지수 없애기 (0) | 2021.09.06 |