如何在java中使用File.mkdirs()编写优雅的代码?

kin*_*cky 3 java io file mkdirs

我需要一个目录来保存文件,但我不确定它是否存在.
所以我需要先检查它是否存在,并在必要时创建它.

File saveDir = new File("/tmp/appname/savedir/");
if(!saveDir.exists()){
    saveDir.mkdirs(); 
}
Run Code Online (Sandbox Code Playgroud)

如上所述,有一个问题.
方法"saveDir.exists()"返回一个布尔值,指示文件路径是否存在.

当然,我可以写一些冗余和丑陋的代码来工作.

有没有办法写一些优雅的代码来实现这个目标?

Adr*_*hum 8

你的问题是关于"冗余"检查目录存在的代码,还是你需要创建一个目录和所有缺少的父目录?

我相信在Apache Commons IO中使用FileUtils可以轻松完成这两项工作:

FileUtils.forceMkDir(new File("/some/missing/parent/directory/foo"));
Run Code Online (Sandbox Code Playgroud)


Nat*_*iel 5

永远都有

if(!file.exists() && !file.mkDirs()) { // handle the failed to create situation... }
Run Code Online (Sandbox Code Playgroud)


Ste*_*han 3

优雅是一个主观的事情,但是如果您想检查目录是否实际创建,还可以检查File.mkdirs(). 如果它返回,false则取决于您的应用程序如何处理它(例如抛出异常)。