반응형

1. 시험환경

    ˙ Jdk-17.0.5

    ˙ IntelliJ

 

2. 목적

    ˙ 특정 폴더 하위에 있는 모든 폴더를 순회하면서 파일을 삭제하는 코드를 작성한다.

 

3. 적용

    ① 테스트 대상 폴더 구조 및 임시 파일이 있다.

        - files : a.txt, b.txt

        - files\subFolder1 : c.txt, d.txt

        - files\subFolder1\subFolder2_1 폴더: e.txt

        - files\subFolder1\subFolder2_1 폴더: gf.txt, h.txt, i.txt

 

    ② 재귀함수를 호출하면서 하위 폴더에 있는 모든 파일을 File 클래스 내장 메소드를 이용하여 삭제한다. 

        - .isFile() : 파일 여부

        - .isDirectory() : 디렉토리 여부

        - .delete() : 삭제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.File;
 
public class FileControl {
    static void deleteFiles(String _targetDir) {
 
        File path = new File(_targetDir);
        File[] fList = path.listFiles();
 
        if (fList != null) {
            for(int i = 0; i < fList.length; i++) {
                if(fList[i].isFile()) {
                    fList[i].delete();
                    System.out.println(String.format("%s is deleted...", fList[i].getPath()));
                }
                else if(fList[i].isDirectory()) {
                    deleteFiles(fList[i].getPath());
                }
            }
        }
    }
}
 
cs

 

    ③ 대상 폴더를 지정하고 Main 클래스에서 테스트한다.

1
2
3
4
5
6
7
8
public class Main {
    private static String targetFolder = "D:/workspace-java/files";
 
    public static void main(String[] args) {
        FileControl fileControl = new FileControl();
        fileControl.deleteFiles(targetFolder);
    }
}
cs

 

    ④ 프로그램 코드

Example.zip
0.00MB

 

4. 결과

    ˙ 로그에서 삭제된 파일 목록을 확인한다.

1
2
3
4
5
6
7
8
9
10
11
D:\workspace-java\files\a.txt is deleted...
D:\workspace-java\files\b.txt is deleted...
D:\workspace-java\files\subFolder1\c.txt is deleted...
D:\workspace-java\files\subFolder1\d.txt is deleted...
D:\workspace-java\files\subFolder1\subFolder2_1\e.txt is deleted...
D:\workspace-java\files\subFolder1\subFolder2_2\f.txt is deleted...
D:\workspace-java\files\subFolder1\subFolder2_2\gf.txt is deleted...
D:\workspace-java\files\subFolder1\subFolder2_2\h.txt is deleted...
D:\workspace-java\files\subFolder1\subFolder2_2\i.txt is deleted...
 
Process finished with exit code 0
cs

 

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형

+ Recent posts