根据点字符串包名称创建目录(如果不存在)

use*_*225 3 java java-8

我有一个包名称,其值为com.foo.bar.my.app。我想src/main/test在基于点的字符串包名称中的任何目录都不存在的情况下创建目录。

我知道我可以通过分割每个目录名称来实现:

String pkgName = "com.foo.bar.my.app";
String[] dirs = pkgName.split(".");
Run Code Online (Sandbox Code Playgroud)

然后File为每个目录名称创建对象,并使用File#exists() api检查并创建新文件(如果不存在)。

但是,在Java 8中是否有更简洁的优雅方法来实现它?

Sto*_*ica 7

看来您在寻找Files.html#createDirectories,例如:

Files.createDirectories(Paths.get(pkgName.replaceAll("\\.", "/")));
Run Code Online (Sandbox Code Playgroud)

从Javadoc:

通过首先创建所有不存在的父目录来创建目录。与createDirectory方法不同,如果由于目录已经存在而无法创建目录,则不会引发异常。