Java中mkdir()和mkdirs()之间的区别java.io.File
任何人都可以告诉我file.mkDir()
和file.mkDirs()
之间的区别?
mkdirs()
也在这个File
表示的path中创build父目录 。
javadocs for mkdirs()
:
创build由此抽象path名命名的目录,包括任何必要但不存在的父目录。 请注意,如果此操作失败,则可能会成功创build一些必要的父目录。
javadocs for mkdir()
:
创build由此抽象path名命名的目录。
例:
File f = new File("non_existing_dir/someDir"); System.out.println(f.mkdir()); System.out.println(f.mkdirs());
会产生false
的第一个[和没有dir将被创build],并为第二,这将创buildnon_existing_dir/someDir
mkdirs()
将创build完整的指定目录path,其中mkdir()
将只创build最底层目录,如果无法find正在尝试创build的目录的父目录,则会失败。
换句话说, mkdir()
就像mkdir
, mkdirs()
就像mkdir -p
。
例如,假设我们有一个空的/tmp
目录。 下面的代码
new File("/tmp/one/two/three").mkdirs();
会创build以下目录:
-
/tmp/one
-
/tmp/one/two
-
/tmp/one/two/three
这里代码:
new File("/tmp/one/two/three").mkdir();
不会创build任何目录 – 因为它不会find/tmp/one/two
– 并且会返回false
。
mkdir()
一次只创build一个目录,如果它只是一个父目录。 其他方面,它可以创build子目录(如果指定的path只存在),并且不要在任何两个目录之间创build任何目录。 所以它不能在一个目录中创build多个目录
mkdirs()
一次创build多个目录(也在两个目录之间)。