java for java 中的 mkdir() 和 mkdirs() 之间的区别 java.io.File [已关闭]

2022-08-31 07:55:21

谁能告诉我这两种方法之间的区别:

  • file.mkdir()
  • file.mkdirs()

答案 1

mkdirs()还会在它所表示的路径中创建父目录File

javadocs for :mkdirs()

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

javadocs for :mkdir()

创建由此抽象路径名命名的目录。

例:

File  f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());

将产生第一个 [并且不会创建任何 dir],对于第二个,您将创建falsetruenon_existing_dir/someDir


答案 2

mkdirs()将完整地创建指定的目录路径,其中将仅创建最底部的目录,如果找不到它尝试创建的目录的父目录,则失败。mkdir()

换句话说,就像和是像。mkdir()mkdirmkdirs()mkdir -p

例如,假设我们有一个空目录。下面的代码/tmp

new File("/tmp/one/two/three").mkdirs();

将创建以下目录:

  • /tmp/one
  • /tmp/one/two
  • /tmp/one/two/three

其中此代码:

new File("/tmp/one/two/three").mkdir();

不会创建任何目录 - 因为它找不到 - 并且会返回。/tmp/one/twofalse


推荐