Хто-небудь може сказати мені різницю між цими двома методами:
file.mkdir()file.mkdirs()
Хто-небудь може сказати мені різницю між цими двома методами:
file.mkdir()file.mkdirs()Відповіді:
mkdirs()також створює батьківські каталоги на шляху, який це Fileпредставляє.
javadocs для mkdirs():
Створює каталог, названий цим абстрактним іменем шляху, включаючи будь-які необхідні, але неіснуючі батьківські каталоги. Зауважте, що якщо ця операція завершилася невдачею, можливо, вдалося створити деякі необхідні батьківські каталоги.
javadocs для 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
mkdir()повертається trueчи false? Здається, явадок не висвітлює цей аспект.
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.
mkdir()
створює одночасно лише один каталог, якщо він є лише батьківським. іншим чином, він може створити підкаталог (якщо існує лише вказаний шлях) і не створювати жодних каталогів між двома каталогами. тому він не може створювати багатоскладні каталоги в одному каталозі
mkdirs()
створюйте кілька каталогів (також між двома каталогами) одночасно.