본문 바로가기

시즌1/Java Tips

[Java Tips] File.mkdir()과 File.mkdirs()의 차이점

Java API에서는 디렉토리를 생성하기 위해, File.mkdir()과 File.mkdirs(), 두 개의 API가 제공됩니다.
위 두 개의 API는 모두 디렉토리를 생성하는 기능을 하지만, 세부적으로는 약간 틀린 기능을 합니다.

File.mkdir()

만들고자 하는 디렉토리의 상위 디렉토리가 존재하지 않을 경우, 생성 불가

C:\base\want

want 디렉토리를 만들고자 하는데, base 디렉토리가 없는 경우, 생성 불가

File.mkdirs()

만들고자 하는 디렉토리의 상위 디렉토리가 존재하지 않을 경우, 상위 디렉토리까지 생성

C:\base\want

want 디렉토리를 만들고자 하는데, base 디렉토리가 없는 경우, base 디렉토리까지 생성

 

package javatips;

import java.io.File;

public class MakeDirectoriesDemo {

	public static void main(String args[]){
		boolean result;
		File f = new File("C:\\a\\b\\c\\d");
		
		// 최 하위 디렉토리에 대해서만 생성을 함.
		// 최 하위 디렉토리의 바루 상위 디렉토리가 존재하지 않을 경우,
		// 디렉토리가 생성되지 못하고, false를 리턴함
		result = f.mkdir();
		
		System.out.println(result ? "directory is made" : "directory is not made"); 
		
		// 상위 디렉토리가 존재하지 않을 경우, 상위 디렉토리까지 생성함
		result = f.mkdirs();
		System.out.println(result == true ? "directory is made" : "directory is not made");
		
	}
}



 
Output :
directory is not made
directory is made