Vytvorte adresár v Jave

1. Prehľad

Vytvorenie adresára pomocou Javy je celkom jednoduché. Tento jazyk nám poskytuje dve metódy, ktoré nám umožňujú vytvoriť buď jeden adresár, alebo viac vnorených adresárov - mkdir () a mkdirs ().

V tomto návode uvidíme, ako sa obaja správajú.

2. Vytvorte jeden adresár

Začnime s vytvorením jedného adresára.

Pre naše účely budeme využívať používateľa tepl adresár. Môžeme to vyhľadať System.getProperty („java.io.tmpdir“).

Prejdeme túto cestu k Jave Súbor objekt, ktorý bude predstavovať náš dočasný adresár:

súkromný statický konečný súbor TEMP_DIRECTORY = nový súbor (System.getProperty ("java.io.tmpdir"));

Teraz v ňom vytvorme nový adresár. Dosiahneme to zavolaním Súbor :: mkdir metóda na novom Súbor objekt predstavujúci adresár, ktorý sa má vytvoriť:

Súbor newDirectory = nový súbor (TEMP_DIRECTORY, "nový_adresár"); assertFalse (newDirectory.exists ()); assertTrue (newDirectory.mkdir ());

Aby sme sa uistili, že náš adresár ešte neexistuje, najskôr sme použili existuje () metóda.

Potom sme zavolali mkdir () metóda, ktorá nám hovorí, či bolo vytvorenie adresára úspešné alebo nie. Keby adresár už existoval, metóda by sa vrátila nepravdivé.

Ak uskutočníme rovnaké hovory znova:

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

Potom, ako sme očakávali, sa metóda vráti nepravdivé na druhý hovor.

A mkdir () metóda nielen vrátiť nepravdivé keď adresár už existuje ale aj v niektorých ďalších situáciách. Napríklad môže existovať súbor s názvom adresára, ktorý chceme vytvoriť. Alebo by nám mohli chýbať oprávnenia na vytvorenie tohto adresára.

S ohľadom na to musíme nájsť spôsob, ako zabezpečiť, aby náš adresár nakoniec existoval, buď sme ho vytvorili, alebo už tam bol. Na tento účel by sme mohli použiť isDirectory () metóda:

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

Takto zaistíme, aby tam bol adresár, ktorý potrebujeme.

3. Vytvorte viac vnorených adresárov

To, čo sme doteraz videli, funguje dobre v jednom adresári, ale čo sa stane, ak chceme vytvoriť viac vnorených adresárov?

V nasledujúcom príklade sa toho dočkáme Súbor :: mkdir na to nefunguje:

Súbor newDirectory = nový súbor (TEMP_DIRECTORY, "nový_adresár"); Súbor nestedDirectory = nový súbor (newDirectory, "nested_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertFalse (nestedDirectory.mkdir ());

Ako nový_adresár neexistuje mkdir nevytvára podklad vnorený_adresár.

Avšak Súbor triedy nám poskytuje inú metódu, ako to dosiahnuť - mkdirs (). Táto metóda sa bude správať podobne mkdir () ale tiež vytvorí všetky neexistujúce nadradené adresáre.

V našom predchádzajúcom príklade by to znamenalo vytvárať nielen vnorený_adresár, ale tiež nový_adresár.

Všimnite si, že doteraz sme používali File (File, String) konštruktér, ale môžeme tiež použiť Súbor (reťazec) konštruktora a prejsť úplnú cestu k nášmu súboru pomocou File.separator na oddelenie rôznych častí cesty:

Súbor newDirectory = nový súbor (System.getProperty ("java.io.tmpdir") + File.separator + "new_directory"); Súbor nestedDirectory = nový súbor (newDirectory, "nested_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertTrue (nestedDirectories.mkdirs ());

Ako vidíme, adresáre sa vytvárajú podľa očakávania. Metóda sa navyše iba vracia pravda keď je vytvorený aspoň jeden adresár. Pokiaľ ide o mkdir () metóda sa vráti nepravdivé v ostatných prípadoch.

To znamená, že mkdirs () metóda použitá v adresári, ktorého rodičia existujú, bude fungovať rovnako ako metóda mkdir () metóda.

4. Záver

V tomto článku sme videli dve metódy, ktoré nám umožňujú vytvárať adresáre v Jave. Prvý, mkdir ()sa zameriava na vytvorenie jediného adresára, ak už existujú jeho rodičia. Druhý, mkdirs (), je schopná vytvoriť adresár rovnako ako svojich neexistujúcich rodičov.

Kód tohto článku nájdete na našom GitHub.


$config[zx-auto] not found$config[zx-overlay] not found