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