mkdirs() 已存在目录的返回值

2022-09-02 04:27:30

File.mkdirs JavaDocs:

public boolean mkdirs()

创建由此抽象路径名命名的目录,包括任何必要但不存在的父目录。请注意,如果此操作失败,它可能已成功创建某些必需的父目录。

返回:当且仅当目录已创建时为 true,以及所有必需的父目录;否则为假

我的问题是:mkdirs()如果想要创建的一些目录已经存在,会返回false吗?或者,如果它成功地为文件创建了整个路径,它是否只返回 true,无论某些目录是否已存在?


答案 1

它返回 false。

来自 java doc: - 如果目录已创建,则为 true;如果失败或目录已存在,则为 false。

您应该执行如下操作:

if (file.mkdirs()) {
    System.out.format("Directory %s has been created.", file.getAbsolutePath());

} else if (file.isDirectory()) {
    System.out.format("Directory %s has already been created.", file.getAbsolutePath());

} else {
    System.out.format("Directory %s could not be created.", file.getAbsolutePath());
}

答案 2