我正在创建一个简单的程序,尝试从磁盘中读取“conf/conf.xml”,但是如果此文件或目录不存在,则会创建它们。
我可以使用以下代码执行此操作:
// create subdirectory path
Path confDir = Paths.get("./conf");
// create file-in-subdirectory path
Path confFile = Paths.get("./conf/conf.xml");
// if the sub-directory doesn't exist then create it
if (Files.notExists(confDir)) {
try { Files.createDirectory(confDir); }
catch (Exception e ) { e.printStackTrace(); }
}
// if the file doesn't exist then create it
if (Files.notExists(confFile)) {
try { Files.createFile(confFile); }
catch (Exception e ) { e.printStackTrace(); }
}
我的问题是,这是否真的是最优雅的方式?需要创建两个简单的路径以在新的子目录中创建新文件似乎多余。
最佳答案
您可以将confFile
声明为File
而不是Path
。然后,您可以使用confFile.getParentFile().mkdirs();
,请参见下面的示例:
// ...
File confFile = new File("./conf/conf.xml");
confFile.getParentFile().mkdirs();
// ...
或者,按原样使用代码,您可以使用:
Files.createDirectories(confFile.getParent());