Opprett en katalog i Java

1. Oversikt

Å lage en katalog med Java er ganske rett frem. Språket gir oss to metoder som lar oss lage enten en enkelt katalog eller flere nestede kataloger - mkdir () og mkdirs ().

I denne veiledningen får vi se hvordan de begge oppfører seg.

2. Opprett en enkelt katalog

La oss starte med opprettelsen av en enkelt katalog.

For våre formål bruker vi brukeren temp katalog. Vi kan slå opp det med System.getProperty (“java.io.tmpdir”).

Vi sender denne stien til en Java Fil objekt, som vil representere temp temp katalogen vår:

privat statisk sluttfil TEMP_DIRECTORY = ny fil (System.getProperty ("java.io.tmpdir"));

La oss nå opprette en ny katalog inne i den. Vi oppnår dette ved å ringe Fil :: mkdir metode på en ny Fil objekt som representerer katalogen som skal opprettes:

Fil newDirectory = ny fil (TEMP_DIRECTORY, "ny_katalog"); assertFalse (newDirectory.exists ()); assertTrue (newDirectory.mkdir ());

For å sikre at katalogen vår ikke eksisterer ennå, brukte vi først eksisterer () metode.

Så ringte vi mkdir () metode som forteller oss om katalogopprettingen lyktes eller ikke. Hvis katalogen allerede eksisterte, ville metoden ha returnert falsk.

Hvis vi ringer de samme samtalene igjen:

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

Så, som vi forventet, kommer metoden tilbake falsk på den andre samtalen.

Og mkdir () metoden ikke bare tilbake falsk når katalogen allerede eksisterer men også i noen andre situasjoner. For eksempel kan en fil eksistere med navnet på katalogen vi vil opprette. Eller vi kan ikke ha tillatelse til å opprette denne katalogen.

Med det i bakhodet må vi finne en måte å sikre at katalogen vår eksisterer til slutt, enten vi opprettet den eller den var allerede der. For det formålet kunne vi bruke isDirectory () metode:

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

På den måten sørger vi for at katalogen vi trenger er der.

3. Opprett flere nestede kataloger

Det vi har sett så langt, fungerer bra i en enkelt katalog, men hva skjer hvis vi vil opprette flere nestede kataloger?

I det følgende eksemplet ser vi det Fil :: mkdir fungerer ikke for det:

Fil newDirectory = ny fil (TEMP_DIRECTORY, "ny_katalog"); Fil nestedDirectory = ny fil (newDirectory, "nested_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertFalse (nestedDirectory.mkdir ());

Som den ny_katalog eksisterer ikke mkdir skaper ikke det underliggende nestet_katalog.

Imidlertid, den Fil klasse gir oss en annen metode for å oppnå det - mkdirs (). Denne metoden vil oppføre seg som mkdir () men vil også opprette alle de ikke eksisterende foreldrekatalogene også.

I vårt forrige eksempel vil dette bety å skape ikke bare nestet_katalog, men også ny_katalog.

Merk at til nå har vi brukt Fil (Fil, streng) konstruktør, men vi kan også bruke Fil (streng) konstruere og passere hele banen til filen vår ved hjelp av File.separator for å skille de forskjellige delene av stien:

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

Som vi kan se, blir katalogene opprettet som forventet. Videre returnerer metoden bare ekte når minst en katalog opprettes. Når det gjelder mkdir () metoden, kommer den tilbake falsk i de andre tilfellene.

Derfor betyr dette at mkdirs () metoden som brukes i en katalog som har foreldre, fungerer på samme måte som mkdir () metode.

4. Konklusjon

I denne artikkelen har vi sett to metoder som lar oss lage kataloger i Java. Den første, mkdir (), retter seg mot opprettelsen av en enkelt katalog, forutsatt at foreldrene allerede finnes. Den andre, mkdirs (), er i stand til å opprette en katalog i tillegg til sine ikke-eksisterende foreldre.

Koden til denne artikkelen finner du på GitHub.


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