任何人都可以告诉我file.mkDir()
之间的区别
和file.mkDirs()
?
答案 0 :(得分:138)
mkdirs()
还会在此File
所代表的路径中创建父目录。
mkdirs()
的
创建此抽象路径名所指定的目录,包括any 必要但不存在的父目录。请注意,如果这样 操作失败它可能已经成功创建了一些 必要的父目录。
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
答案 1 :(得分:56)
mkdirs()
将完整地创建指定的目录路径,其中mkdir()
将仅创建最底层的目录,如果找不到它尝试创建的目录的父目录,则失败。
换句话说,mkdir()
就像mkdir
而mkdirs()
就像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()
一次创建多个目录(也在两个目录之间)。