Adakah yang bisa memberi tahu saya perbedaan antara kedua metode ini:
file.mkdir()
file.mkdirs()
Adakah yang bisa memberi tahu saya perbedaan antara kedua metode ini:
file.mkdir()
file.mkdirs()
Jawaban:
mkdirs()
juga membuat direktori induk di jalur yang File
diwakilinya.
javadocs untuk mkdirs()
:
Membuat direktori yang dinamai dengan nama jalur abstrak ini, termasuk semua direktori induk yang diperlukan tetapi tidak ada. Perhatikan bahwa jika operasi ini gagal, mungkin telah berhasil membuat beberapa direktori induk yang diperlukan.
javadocs untuk mkdir()
:
Membuat direktori yang dinamai dengan nama jalur abstrak ini.
Contoh:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
akan menghasilkan false
untuk yang pertama [dan dir tidak akan dibuat], dan true
untuk yang kedua, dan Anda akan membuatnyanon_existing_dir/someDir
mkdir()
kembali true
atau false
? Javadoc tampaknya tidak mencakup aspek ini.
mkdirs()
akan membuat jalur direktori yang ditentukan secara keseluruhan di mana mkdir()
hanya akan membuat direktori paling bawah, gagal jika tidak dapat menemukan direktori induk dari direktori yang coba dibuatnya.
Dengan kata lain mkdir()
adalah seperti mkdir
dan mkdirs()
sepertimkdir -p
.
Misalnya, bayangkan kita memiliki /tmp
direktori kosong . Kode berikut
new File("/tmp/one/two/three").mkdirs();
akan membuat direktori berikut:
/tmp/one
/tmp/one/two
/tmp/one/two/three
Dimana kode ini:
new File("/tmp/one/two/three").mkdir();
tidak akan membuat direktori apa pun - karena tidak akan ditemukan /tmp/one/two
- dan akan kembali false
.
mkdir()
membuat hanya satu direktori dalam satu waktu, jika itu adalah induknya saja. Jika tidak, ia dapat membuat sub direktori (jika jalur yang ditentukan hanya ada) dan tidak membuat direktori apa pun di antara dua direktori. sehingga tidak dapat membuat beberapa direktori dalam satu direktori
mkdirs()
buat beberapa direktori (di antara dua direktori juga) pada satu waktu.