Hozzon létre egy könyvtárat a Java-ban

1. Áttekintés

Könyvtár létrehozása Java-val elég egyszerű. A nyelv kétféle módszert biztosít számunkra, amelyek lehetővé teszik egyetlen könyvtár vagy több beágyazott könyvtár létrehozását - mkdir () és mkdirs ().

Ebben az oktatóanyagban meglátjuk, hogyan viselkednek mindketten.

2. Hozzon létre egyetlen könyvtárat

Kezdjük egyetlen könyvtár létrehozásával.

Céljainkhoz felhasználjuk a felhasználót temp Könyvtár. Utána nézhetünk System.getProperty („java.io.tmpdir”).

Ezt az utat átadjuk egy Java-nak File objektum, amely a temp könyvtárunkat képviseli:

privát statikus végleges fájl TEMP_DIRECTORY = új fájl (System.getProperty ("java.io.tmpdir"));

Most hozzunk létre egy új könyvtárat benne. Ezt úgy érjük el, hogy felhívjuk a Fájl :: mkdir módszer egy új File a létrehozandó könyvtárat képviselő objektum:

Fájl newDirectory = új fájl (TEMP_DIRECTORY, "új_könyvtár"); assertFalse (newDirectory.exists ()); assertTrue (newDirectory.mkdir ());

Annak biztosítására, hogy könyvtárunk még nem létezik, először a létezik() módszer.

Aztán felhívtuk a mkdir () módszer, amely megmondja, hogy a könyvtár létrehozása sikerült-e vagy sem. Ha a könyvtár már létezett, a metódus visszatért volna hamis.

Ha ugyanazokat a hívásokat folytatjuk újra:

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

Aztán, ahogy számítottunk rá, a módszer visszatér hamis a második hívásra.

És a mkdir () módszer nem csak visszatér hamis amikor a könyvtár már létezik hanem néhány más helyzetben is. Például létezhet egy fájl a létrehozni kívánt könyvtár nevével. Vagy hiányozhat a könyvtár létrehozásának engedélye.

Ezt szem előtt tartva meg kell találnunk a módját, hogy megbizonyosodjunk arról, hogy a könyvtárunk végül is létezik-e, vagy létrehoztuk, vagy már ott volt. Erre a célra használhatnánk a isDirectory () módszer:

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

Így megbizonyosodunk arról, hogy a szükséges könyvtár megvan-e.

3. Hozzon létre több beágyazott könyvtárat

Az eddig látottak jól működnek egyetlen könyvtárban, de mi történik, ha több beágyazott könyvtárat akarunk létrehozni?

A következő példában ezt látni fogjuk Fájl :: mkdir nem működik ezért:

Fájl newDirectory = új fájl (TEMP_DIRECTORY, "új_könyvtár"); Fájl nestedDirectory = új Fájl (newDirectory, "beágyazott_könyvtár"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertFalse (nestedDirectory.mkdir ());

Mivel a új_könyvtár nem létezik mkdir nem hozza létre az alapul szolgáló elemet beágyazott_könyvtár.

Azonban a File osztály nyújt nekünk egy másik módszert ennek elérésére - mkdirs (). Ez a módszer úgy fog viselkedni mkdir () hanem létrehozza az összes nem létező szülőkönyvtárat is.

Előző példánkban ez nemcsak létrehozást jelentene beágyazott_könyvtár, de szintén új_könyvtár.

Ne feledje, hogy eddig a Fájl (fájl, karakterlánc) kivitelező, de használhatjuk a Fájl (karakterlánc) konstruktor és adja át a fájlunk teljes elérési útját a File.separator az út különböző részeinek elkülönítéséhez:

Fájl newDirectory = új Fájl (System.getProperty ("java.io.tmpdir") + File.separator + "new_directory"); Fájl nestedDirectory = új Fájl (newDirectory, "beágyazott_könyvtár"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertTrue (nestedDirectories.mkdirs ());

Mint láthatjuk, a könyvtárak a várakozásoknak megfelelően jönnek létre. Sőt, a módszer csak visszatér igaz amikor legalább egy könyvtár létrejön. Ami a mkdir () módszerrel visszatér hamis a többi esetben.

Ezért ez azt jelenti, hogy a mkdirs () olyan könyvtárban használt módszer, amelynek szülei léteznek, ugyanúgy fog működni, mint a mkdir () módszer.

4. Következtetés

Ebben a cikkben két módszert láthattunk, amelyek lehetővé teszik könyvtárak létrehozását Java-ban. Az első, mkdir (), egyetlen könyvtár létrehozását célozza, feltéve, hogy a szülei már léteznek. A második, mkdirs (), képes létrehozni egy könyvtárat, valamint a nem létező szülőket.

A cikk kódja megtalálható a GitHub oldalán.


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