我正在尝试使用java.io编写一个文件,我试图在"some/path/to/somewhere/then-my-file"
位置创建它。创建文件时,路径上的任何目录可能存在也可能不存在。因为没有这样的目录而不是抛出IOException,我希望在需要的时候透明地创建目录。
是否有一种方法可以在编写文件的过程中创建所需的任何目录?我正在寻找可以添加到类路径的轻量级库中的Java SDK,或中的内容,例如Apache Commons IO。
P.S。为了清楚起见,我已经编写了一个解决方案,它适用于我正在测试它的相当狭窄的方式,所以我真的不需要有关如何编写我正在寻找的方法的建议。我正在寻找一种经过相当好的测试和跨平台的方法。
答案 0 :(得分:25)
new File("some/path/to/somewhere/then-my-file").getParentFile().mkdirs()
答案 1 :(得分:2)
由于该问题还提到了库 Apache Common IO ,我在下面报告了一个使用这个漂亮库的解决方案:
File file = new File("... the directory path ...");
FileUtils.forceMkdir(file);
此解决方案使用包org.apache.commons.io
中的类FileUtils
和方法forceMkdir
,“创建目录,包括任何必要但不存在的父目录 ”
答案 2 :(得分:2)
Guava也有Files.createParentDirs(File)。