Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 284
Grundlefleck Avatar asked Nov 17 '09 23:11

Grundlefleck


2 Answers

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

like image 66
skaffman Avatar answered Nov 09 '22 03:11

skaffman


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".

like image 20
JeanValjean Avatar answered Nov 09 '22 05:11

JeanValjean