티스토리 뷰

자바에서 디렉토리 삭제시 하위디렉토리들이 파일이 존재할 경우에는 재귀적으로 삭제 처리할수밖에 없습니다.

(단 Runtime으로 native 명령어를 직접 실행해서 삭제할수 있습니다. 하지만 보안적 위협이 됩니다.)


Java8 에서는 NIO2 와 Stream API 를 사용해서 Beautiful 하게 삭제처리를 할수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.example.demo;
 
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Comparator;
 
public class DeleteTest {
    public static void main(String[] args) throws IOException {
        cleanDir();
    }
 
    public static void cleanDir() throws IOException {
        Path rootDir = Paths.get("c:\\target_test");
 
        Files.walk(rootDir)
                .sorted(Comparator.reverseOrder())
                .map(Path::toFile)
                .forEach(File::delete);
    }
}
 
cs


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크