Buat Direktori di Java

1. Gambaran keseluruhan

Membuat direktori dengan Java cukup mudah. Bahasa ini memberi kita dua kaedah yang membolehkan kita membuat sama ada satu direktori atau beberapa direktori bersarang - mkdir () dan mkdirs () .

Dalam tutorial ini, kita akan melihat bagaimana mereka berdua berkelakuan.

2. Buat Direktori Tunggal

Mari mulakan dengan pembuatan satu direktori.

Untuk tujuan kami, kami akan menggunakan direktori temp pengguna . Kita dapat mencarinya dengan System.getProperty (“java.io.tmpdir”) .

Kami akan melewati jalan ini ke objek File Java , yang akan mewakili direktori temp kami:

private static final File TEMP_DIRECTORY = new File(System.getProperty("java.io.tmpdir"));

Sekarang mari kita buat direktori baru di dalamnya. Kami akan mencapainya dengan memanggil kaedah File :: mkdir pada objek File baru yang mewakili direktori untuk dibuat:

File newDirectory = new File(TEMP_DIRECTORY, "new_directory"); assertFalse(newDirectory.exists()); assertTrue(newDirectory.mkdir());

Untuk memastikan direktori kami belum ada, kami pertama kali menggunakan kaedah wujud () .

Kemudian kami memanggil kaedah mkdir () yang memberitahu kami sama ada penciptaan direktori berjaya atau tidak. Sekiranya direktori sudah ada, kaedahnya akan kembali salah .

Sekiranya kita membuat panggilan yang sama sekali lagi:

assertTrue(newDirectory.exists()); assertFalse(newDirectory.mkdir());

Kemudian, seperti yang kami jangkakan, kaedah ini akan kembali palsu pada panggilan kedua.

Dan, kaedah mkdir () tidak hanya kembali palsu apabila direktori sudah ada tetapi juga dalam beberapa situasi lain. Sebagai contoh, fail boleh wujud dengan nama direktori yang ingin kita buat. Atau kita mungkin tidak mempunyai izin untuk membuat direktori ini.

Dengan pemikiran itu, kita harus mencari jalan untuk memastikan direktori kita ada pada akhirnya, sama ada kita membuatnya atau sudah ada. Untuk tujuan itu, kita dapat menggunakan kaedah isDirectory () :

newDirectory.mkdir() || newDirectory.isDirectory()

Dengan cara itu, kami memastikan bahawa direktori yang kami perlukan ada di sana.

3. Buat Beberapa Direktori Bersarang

Apa yang kita lihat setakat ini berfungsi dengan baik pada satu direktori, tetapi apa yang berlaku jika kita ingin membuat banyak direktori bersarang?

Dalam contoh berikut, kita akan melihat bahawa File :: mkdir tidak berfungsi untuk itu:

File newDirectory = new File(TEMP_DIRECTORY, "new_directory"); File nestedDirectory = new File(newDirectory, "nested_directory"); assertFalse(newDirectory.exists()); assertFalse(nestedDirectory.exists()); assertFalse(nestedDirectory.mkdir());

Oleh kerana direktori_direktori baru tidak ada, mkdir tidak membuat direktori bersarang yang mendasari .

Walau bagaimanapun, kelas Fail memberi kami kaedah lain untuk mencapainya - mkdirs () . Kaedah ini akan berkelakuan seperti mkdir () tetapi juga akan membuat semua direktori induk yang tidak ada juga.

Dalam contoh sebelumnya, ini bermaksud membuat bukan hanya direktori_ bersarang , tetapi juga direktori baru.

Perhatikan bahawa sehingga sekarang kami menggunakan konstruktor File (File, String) , tetapi kami juga dapat menggunakan konstruktor File (String) dan lulus jalur lengkap fail kami menggunakan File.separator untuk memisahkan bahagian jalan yang berbeza:

File newDirectory = new File(System.getProperty("java.io.tmpdir") + File.separator + "new_directory"); File nestedDirectory = new File(newDirectory, "nested_directory"); assertFalse(newDirectory.exists()); assertFalse(nestedDirectory.exists()); assertTrue(nestedDirectories.mkdirs());

Seperti yang kita lihat, direktori dibuat seperti yang diharapkan. Lebih-lebih lagi, kaedah ini hanya kembali benar apabila sekurang-kurangnya satu direktori dibuat. Bagi kaedah mkdir () , ia akan menjadi salah dalam kes lain.

Oleh itu ini bermaksud bahawa kaedah mkdirs () yang digunakan pada direktori yang ibu bapa mereka ada akan berfungsi sama seperti kaedah mkdir () .

4. Kesimpulan

Dalam artikel ini, kami telah melihat dua kaedah yang membolehkan kami membuat direktori di Java. Yang pertama, mkdir () , mensasarkan penciptaan satu direktori, dengan syarat ibu bapanya sudah ada. Yang kedua, mkdirs () , dapat membuat direktori dan juga ibu bapa yang tidak ada.

Kod artikel ini boleh didapati di GitHub kami.