자바 디렉토리 삭제하기(Delete a non-empty directory in JAVA)

자바에서 파일을 삭제하려면 File 클래스에서 delete() 메소드를 사용하면 된다.

File file = new File("pathname");
file.delete();


하지만 delete() 메소드는 해당 path 가 디렉토리일 경우 디렉토리가 비어 있을때만 삭제가 된다. 디렉토리 안에 파일이나 하위 디렉토리가 있을 때 삭제하려면 다음과 같이 recursive 메소드를 사용해서 삭제할 수 있다.

import java.io.File;


class DeleteDir {
	public static void main(String args[]) {
		deleteDirectory(new File(args[0]));
	}
	
	public static boolean deleteDirectory(File path) {
		if(!path.exists()) {
			return false;
		}
		
		File[] files = path.listFiles();
		for (File file : files) {
			if (file.isDirectory()) {
				deleteDirectory(file);
			} else {
				file.delete();
			}
		}
		
		return path.delete();
	}
}