Method in Java to create a file at a location, creating directories if necessary?

99封情书 提交于 2019-12-09 06:05:39

问题


I am attempting to write a file using java.io, where I am trying to create it at the location "some/path/to/somewhere/then-my-file". When the file is being created, any of the directories on the path may or may not exist. Rather than throw an IOException because there are no such directories, I would like the directories to be created transparently, as and when required.

Is there a method that will create any directories required on the way to writing a file? I am looking for something within the Java SDK, or within a lightweight library I can add to the classpath, e.g. Apache Commons IO.

P.S. For clarity's sake, I have already coded a solution, which works for the fairly narrow way I'm testing it, so I don't really need suggestions on how to write the method I'm looking for. I'm looking for a method which will have been fairly well tested, and cross-platform.


回答1:


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




回答2:


Since the question also mentioned the library Apache Common IO, I report in the following a solution that uses this nice library:

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

This solution uses the class FileUtils, from package org.apache.commons.io and the method forceMkdir, that "Makes a directory, including any necessary but nonexistent parent directories".




回答3:


Guava also has Files.createParentDirs(File).



来源:https://stackoverflow.com/questions/1752518/method-in-java-to-create-a-file-at-a-location-creating-directories-if-necessary

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!