java中java.io.File的mkdir()和mkdirs()之间的区别

时间:2012-03-22 10:07:39

标签: java directory

任何人都可以告诉我file.mkDir()之间的区别 和file.mkDirs()

3 个答案:

答案 0 :(得分:138)

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

mkdirs()

javadocs

  

创建此抽象路径名所指定的目录,包括any   必要但不存在的父目录。请注意,如果这样   操作失败它可能已经成功创建了一些   必要的父目录。

mkdir()

javadocs

  

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

示例:

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

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

答案 1 :(得分:56)

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

答案 2 :(得分:4)

mkdir()

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

mkdirs()

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