问题
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