138

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

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

3 回答 3

166

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

用于mkdirs():_

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

用于mkdir():_

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

例子:

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

将产生false第一个[并且不会创建目录],true对于第二个,您将创建non_existing_dir/someDir

于 2012-03-22T10:09:08.650 回答
65

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/two- 并且会返回false.

于 2012-03-22T10:16:34.327 回答
4
mkdir()

如果它是父目录,则一次只创建一个目录。否则它可以创建子目录(如果指定的路径仅存在)并且不要在任何两个目录之间创建任何目录。所以它不能在一个目录中创建多个目录

mkdirs()

一次创建多个目录(也在两个目录之间)。

于 2013-06-20T11:45:53.337 回答