谁能告诉我这两种方法的区别:
file.mkdir()
file.mkdirs()
mkdirs()还在这个 File表示的路径中创建 家长目录。
mkdirs()
File
对于 mkdirs(),javadocs :
创建由此抽象路径名命名的目录,包括 必要但不存在的父目录。请注意,如果 操作失败,它可能已经成功地创建了一些 必要的父目录。
对于 mkdir(),javadocs :
mkdir()
创建由此抽象路径名命名的目录。
例如:
File f = new File("non_existing_dir/someDir"); System.out.println(f.mkdir()); System.out.println(f.mkdirs());
第一个将生成 false[不会创建 dir ] ,第二个将生成 true,您将创建 non_existing_dir/someDir
false
true
non_existing_dir/someDir
mkdirs()将完整地创建指定的目录路径,其中 mkdir()将只创建最底部的目录,如果找不到它试图创建的目录的父目录,则会失败。
换句话说,mkdir()像 mkdir,mkdirs()像 mkdir -p。
mkdir
mkdir -p
例如,假设我们有一个空的 /tmp目录
/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。
一次只创建一个目录,如果父目录只创建一个。否则,它可以创建子目录(如果指定的路径仅存在) ,并且不在任何两个目录之间创建任何目录。因此它不能在一个目录中创建多个目录
一次创建多个目录(也在两个目录之间)。