반응형
안녕하세요. 펄이라고 합니다.
원하는 폴더에 파일을 생성하는 기능을 구현하는 도중, 폴더 경로가 없을 경우에는 파일이 생성되지 않는 다는 것을 알게되었습니다.
이런 상황에서는 미리 폴더를 생성해야 하는데, mkdir을 쓰니 폴더가 생성되지 않았습니다.
상위 폴더가 있을 경우 폴더 생성 - mkdir()
mkdir()은 상위 폴더가 있는 경우에만 폴더 생성이 가능합니다.
예를 들어 C:₩users₩a₩b폴더 생성을 원하는 경우 C:₩users₩a폴더가 이미 생성되어 있어야 합니다.
import java.io.File;
public class testMain {
public static void main(String[] args) {
File f = new File("C:\\test\\test");
// 생성 안되는 코드.
if (!f.exists()) {
if (f.mkdir()) {
System.out.println("file 1 " + f + "폴더 생성됨.");
}
}
// 생성되는 코드 : C라는 경로가 있기 때문에 C:\\test 폴더가 생성된다.
f = new File("C:\\test");
if (!f.exists()) {
if (f.mkdir())
System.out.println("file 2 " + f + "폴더 생성됨.");
}
}
}
기존에 특정 폴더가 반드시 있어야 하는 경우 mkdir()을 사용하고, 경로에 해당하는 폴더가 없을 경우 에러를 띄우는 방식으로 사용할 수 있을 것 같습니다.
상위 폴더가 없어도 폴더 생성 - mkdirs()
mkdirs()는 상위 폴더가 없는 경우에도 원하는 경로에 폴더를 생성하게 됩니다.
import java.io.File;
public class testMain {
public static void main(String[] args) {
// 상위 폴더의 존재가 필요하지 않아 항상 생성됩니다.(모든 상위폴더를 생성)
File f = new File("C\\test\\test\\test");
if (!f.exists()) {
if (f.mkdirs())
System.out.println("file " + f + "폴더 생성됨.");
}
}
}
위의 경우 C:\test, C:\test\test, C:\test\test\test 3개의 폴더가 생성됩니다.
적재 적소에 활용하면 좋을 것 같지만, 현재는 mkdirs() 가 좀 더 편해보이네요.
반응형
'Java' 카테고리의 다른 글
[Java] Wrapper 클래스 : 기본 타입의 데이터를 객체로 취급하다.( 오토박싱, 오토언박싱) (0) | 2022.09.03 |
---|---|
[Java] 람다식 - Lambda Expression (0) | 2022.08.29 |
[Java] BigDecimal - Java에서 정밀한 숫자 표현하기 (0) | 2022.08.24 |
[Java] 문자열 split 할 때 마침표(.) : split(".") → split("//.") (0) | 2022.08.02 |
[JAVAFX] SceneBuilder - 자바 UI 제작 툴 설치 및 사용법 (0) | 2022.01.18 |
댓글