프로그래밍 언어/JAVA

[JAVA] java.io.File 의 mkdirs()와 mkdir() 차이

s워니얌 2023. 5. 10. 15:03

 

 

만약 기존의 폴더가 생성되어 있지 않다면 폴더를 생성하라는 다음과 같은 코드가 있다. 근데) 폴더 생성이 안되는 거 아닌가?? mkdirs()를 mkdir()로 불러왔기 때문이다. 그럼 그 차이가 무엇일까? 

 

File uploadPath = new File(uploadFolder, getFolder());
log.info("upload path: " + uploadPath);

if(uploadPath.exists() == false) {
    uploadPath.mkdir(); // 새로운 폴더 생성 
}

 

 


 

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

 

File.mkdir() 만들고자 하는 디렉토리의 상위 디렉토리가 존재하지 않을 경우, 생성 불가하다.
ex) C:\uploadBook\2023\05\10 
10 디렉토리를 만들고자 한다면 앞에 05 디렉토리가 있어야만 된다. 
File.mkdirs() 만들고자 하는 디렉토리의 상위 디렉토리가 존재하지 않을 경우, 상위 디렉토리까지 생성한다.
ex) C:\uploadBook
다음과 같은 폴더가 있을 때 C:\uploadBook\2023\05\10 이런식으로 폴더를 생성하고 싶다. 2023/05 디렉토리가 없어도 그 폴더까지 생성해준다. 

 

 

반응형