본문 바로가기
Error

[Java] java.io.FileNotFoundException '파일경로' (No such file or directory)

by 지구 2020. 1. 28.

java.io.FileNotFoundException '파일경로' (No such file or directory)
    at java.at java.base/java.io.FileOutputStream.open0(Native Method)
    at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
    at java.base/java.io.FileOutputStream.(FileOutputStream.java:237)
    at java.base/java.io.FileOutputStream.(FileOutputStream.java:187)


행안부 우편번호 API 를 개발하면서 발생한 에러. (삽질로 읽어야 함;;)

행안부에 나와있는 가이드 고대로 했는데 저런 에러가 발생해서 ㅋㅋㅋㅋㅋㅋㅋ
시간 촉박한데 정말 초난감 이었다 ;;

디버깅 모드로 해도 모르겠었는데 다음 날 다시 보니까, 원인을 찾았다.

new File(this.getFilePath() + "/" + dirPath).mkdir();

원인은 이 부분.
디버깅해보면 .mkdir() 부분에서 return 을 false 로 준다. 즉, 인자로 넘겨준 디렉토리를 생성하지 못했다는 뜻.

원인을 찾았으니 서칭을 해보니까
디렉토리 생성요청을 "aaa/bbb" 로 넘겨주면 aaa 폴더가 없으면 aaa 폴더도 만들어주고, bbb 폴더도 만들어줘야되는데
File.mkdir() 는 Windows 규칙이 아니라 Linux 규칙을 따라가서 중간 디렉토리를 생성해주지 않는 다는 것!!!!

 

결론은, aaa 폴더를 직접 만들어주고 요청하거나 File.mkdir() 에게는 중간 디렉토리 없이 요청하면 된다 ;ㅁ;

 

참고) https://stackoverflow.com/questions/12202766/file-mkdir-or-mkdirs-return-false-reason
반응형

댓글