Хто-небудь може сказати мені різницю між цими двома методами:
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()
створюйте кілька каталогів (також між двома каталогами) одночасно.