반응형

보통 파일 삭제 및 폴더 삭제를 각각 file.delete() 함수나 cleanDirectroy() 함수로 폴더 비우고 파일 삭제하는 경우가 있는데

deleteQuietly 이 함수는 파일 및 폴더 삭제(하위 파일과 폴더를 모두 삭제하는 강력한 함수이다.

deleteQuietly 함수 내부를 살펴보자면 먼저 file.isDirectory() 함수로 폴더 체크 후

cleanDirectory() 함수로 폴더를 비워주고 delete 함수로 삭제해준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public static boolean deleteQuietly(final File file) {
        if (file == null) {
            return false;
        }
        try {
            if (file.isDirectory()) {
                cleanDirectory(file);
            }
        } catch (final Exception ignored) {
            // ignore
        }
 
        try {
            return file.delete();
        } catch (final Exception ignored) {
            return false;
        }
    }
 
FileUtils.deleteQuietly(targetFile);
cs

deleteQuietly 사용법

FileUtils 클래스에 속해 있어서 Apache Commons IO 라이브러리 없다면 maven 추가해줘야 된다.

https://mvnrepository.com/artifact/commons-io/commons-io

0. 위 링크로 이동해 최신 버전인 maven 태그를 복사하거나 아래 2.8 버전을 복사해서

pom.xml <dependencies> 태그 내부에 복사해준다.

1
2
3
4
5
6
7
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.8.0</version>
</dependency>
 
cs

1. 저장 후 Project 메뉴 > Update Maven Project 후 maven 추가한 프로젝트를 업데이트 해준다.

2. 아래 메소드처럼 파일경로 String으로 매개변수로 읽어와서 삭제하거나 

 FileUtils.deleteQuietly(targetFile); 

deleteQuietly 함수를 이용하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
    /**
     * 파일 삭제
     * @param String
     */
    public void FileDelete(String filePath) {
        try {
            File targetFile = new File(filePath);
            FileUtils.deleteQuietly(targetFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
cs

 

반응형

+ Recent posts