有人能告诉我这两种方法的区别吗:
file.mkdir()
:创建此抽象路径名指定的目录。file.mkdirs()
:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
有人能告诉我这两种方法的区别吗:
file.mkdir()
:创建此抽象路径名指定的目录。file.mkdirs()
:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。mkdirs()
方法还会创建该File
表示的路径中所有缺失的父级目录。
创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。请注意,如果此操作失败,则可能已成功创建某些必需的父目录。
创建由此抽象路径名命名的目录。
示例:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
第一个命令将返回false
[不会创建任何目录],第二个命令将返回true
,并且你将创建non_existing_dir/someDir
结果为:
第一个命令将返回false
[不会创建任何目录],第二个命令将返回true
,并且你将创建non_existing_dir/someDir
mkdir()
函数会返回 true
还是 false
?Javadoc 似乎没有涉及到这个方面。 - Arunmkdirs()
会创建指定的目录路径及其所有父目录,而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
。
mkdir()
一次只能创建一个目录,如果是父目录则只创建父目录。否则,它可以创建子目录(仅当指定路径已存在)并且不会在任何两个目录之间创建任何目录。因此,它不能在一个目录中创建多个目录。
mkdirs()