Stvorite direktorij na Javi

1. Pregled

Stvaranje direktorija s Javom prilično je jednostavno. Jezik nam pruža dvije metode koje nam omogućuju stvaranje bilo jednog direktorija ili više ugniježđenih direktorija - mkdir () i mkdirs ().

U ovom uputstvu vidjet ćemo kako se obojica ponašaju.

2. Stvorite jedinstveni direktorij

Počnimo sa stvaranjem jednog direktorija.

U naše svrhe koristit ćemo korisnika temp imenik. Možemo to potražiti System.getProperty (“java.io.tmpdir”).

Ovaj ćemo put proslijediti na Javu Datoteka objekt koji će predstavljati naš privremeni direktorij:

privatna statička konačna datoteka TEMP_DIRECTORY = nova datoteka (System.getProperty ("java.io.tmpdir"));

Sada kreirajmo novi direktorij unutar njega. To ćemo postići pozivom na Datoteka :: mkdir metoda na novom Datoteka objekt koji predstavlja direktorij za stvaranje:

Datoteka newDirectory = nova datoteka (TEMP_DIRECTORY, "new_directory"); assertFalse (newDirectory.exists ()); assertTrue (newDirectory.mkdir ());

Da bismo osigurali da naš direktorij još ne postoji, prvo smo upotrijebili postoji () metoda.

Tada smo nazvali mkdir () metoda koja nam govori je li stvaranje direktorija uspjelo ili nije. Da direktorij već postoji, metoda bi se vratila lažno.

Ako ponovno uputimo iste pozive:

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

Tada se, kao što smo i očekivali, metoda vrati lažno na drugom pozivu.

I, mkdir () metoda ne samo povratak lažno kad direktorij već postoji ali i u nekim drugim situacijama. Na primjer, datoteka može postojati s imenom direktorija koji želimo stvoriti. Ili bi nam mogla nedostajati dozvola za stvaranje ovog direktorija.

Imajući to na umu, moramo pronaći način da na kraju osiguramo da naš direktorij postoji, ili smo ga stvorili ili je već bio tamo. U tu svrhu mogli bismo koristiti isDirectory () metoda:

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

Na taj način osiguravamo da je tamo potreban direktorij.

3. Stvorite više ugniježđenih direktorija

Ono što smo do sada vidjeli dobro funkcionira na jednom direktoriju, ali što će se dogoditi ako želimo stvoriti više ugniježđenih direktorija?

U sljedećem ćemo primjeru to vidjeti Datoteka :: mkdir ne radi za to:

Datoteka newDirectory = nova datoteka (TEMP_DIRECTORY, "new_directory"); Datoteka nestedDirectory = nova datoteka (newDirectory, "nested_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertFalse (nestedDirectory.mkdir ());

Kao novi_direktorij ne postoji mkdir ne stvara temeljnu ugniježđeni_direktorij.

Međutim Datoteka klasa pruža nam drugu metodu da to postignemo - mkdirs (). Ova će se metoda ponašati kao mkdir () ali će također stvoriti sve nepostojeće nadređene direktorije.

U našem prethodnom primjeru to bi značilo ne samo stvaranje ugniježđeni_direktorij, ali također novi_direktorij.

Imajte na umu da smo do sada koristili Datoteka (datoteka, niz) konstruktor, ali možemo koristiti i Datoteka (niz) konstruktor i proslijedite cjeloviti put do naše datoteke koristeći File.separator za odvajanje različitih dijelova puta:

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

Kao što vidimo, direktoriji su stvoreni prema očekivanjima. Štoviše, metoda se samo vraća pravi kada se stvori barem jedan direktorij. Što se tiče mkdir () metoda, vratit će se lažno u ostalim slučajevima.

Stoga to znači da mkdirs () metoda korištena na direktoriju čiji roditelji postoje funkcionirat će isto kao i mkdir () metoda.

4. Zaključak

U ovom smo članku vidjeli dvije metode koje nam omogućuju stvaranje direktorija u Javi. Prvi, mkdir (), cilja stvaranje jedinstvenog direktorija, pod uvjetom da njegovi roditelji već postoje. Drugi, mkdirs (), može stvoriti direktorij kao i njegovi nepostojeći roditelji.

Kôd ovog članka može se naći na našem GitHubu.