2009-11-17 6 views
6

java.io를 사용하여 파일을 쓰려고하는데, 여기서 위치는 "some/path/to/somewhere/then-my-file"입니다. 파일이 작성되면 경로에있는 디렉토리가 존재할 수도 있고 존재하지 않을 수도 있습니다. 그러한 디렉토리가 없기 때문에 IOException을 던지기보다는 필요한 경우 디렉토리를 투명하게 생성하고 싶습니다.Java에서 한 위치에 파일을 만들고 필요한 경우 디렉토리를 만드는 방법?

파일을 쓰는 과정에서 필요한 디렉토리를 만드는 방법이 있습니까? Java SDK, 예를 들어 classpath에 추가 할 수있는 경량 라이브러리 내에서 또는을 찾고 있습니다. Apache Commons IO.

P. 명확성을 위해, 나는 이미 그것을 테스트하고있는 매우 좁은 방법으로 작동하는 솔루션을 코딩 했으므로, 내가 찾고있는 방법을 작성하는 방법에 대한 제안은 정말로 필요하지 않다. 나는 꽤 잘 테스트되고 크로스 플랫폼이 될 방법을 찾고있다. 문제는 도서관 아파치 공통 IO을 언급 한 이후

답변

24

new File("some/path/to/somewhere/then-my-file").getParentFile().mkdirs()

+2

+1. 너 너무 빨랐어. – ChssPly76

+1

미안 ... 내 키보드가 지금 불이났다. ... 입력 할 수 없다. ... – skaffman

+0

굉장하고 고마워. – Grundlefleck

2

, 나는에보고하는이 좋은 라이브러리를 사용하는 솔루션을 다음

File file = new File("... the directory path ..."); 
FileUtils.forceMkdir(file); 

이 솔루션에서, 클래스 FileUtils를 사용을 패키지 org.apache.commons.io 및 방법 forceMkdir, "은 필요하지만 존재하지 않는 상위 디렉토리를 포함하여 디렉토리를 만듭니다.".

+1

TS는 _regular_ 파일을 만들고 싶어합니다. 그러면 버전 2.5부터'FileUtils.forceMkdir (regularFile.getParentFile())'또는'FileUtils.forceMkdirParent (regularFile)'과 같을 것입니다. –

+0

잘 잡으세요! 그것을 개선하기 위해 답을 편집하십시오. 댓글은 종종 읽히지 않습니다. – JeanValjean

관련 문제