Maak een directory in Java

1. Overzicht

Het maken van een map met Java is vrij eenvoudig. De taal biedt ons twee methoden waarmee we een enkele map of meerdere geneste mappen kunnen maken - mkdir () en mkdirs ().

In deze tutorial zullen we zien hoe ze zich allebei gedragen.

2. Maak een enkele directory

Laten we beginnen met het maken van een enkele map.

Voor onze doeleinden maken we gebruik van de gebruiker temp directory. We kunnen het opzoeken System.getProperty ("java.io.tmpdir").

We geven dit pad door aan een Java het dossier object, dat onze tijdelijke directory zal vertegenwoordigen:

privé statisch definitief bestand TEMP_DIRECTORY = nieuw bestand (System.getProperty ("java.io.tmpdir"));

Laten we er nu een nieuwe map in maken. We bereiken dit door de Bestand :: mkdir methode op een nieuwe het dossier object dat de map vertegenwoordigt die moet worden gemaakt:

Bestand newDirectory = nieuw bestand (TEMP_DIRECTORY, "nieuwe_directory"); assertFalse (newDirectory.exists ()); assertTrue (newDirectory.mkdir ());

Om er zeker van te zijn dat onze directory nog niet bestaat, hebben we eerst de bestaat () methode.

Toen belden we de mkdir () methode die ons vertelt of het maken van de directory is geslaagd of niet. Als de directory al bestond, zou de methode zijn geretourneerd false.

Als we dezelfde oproepen opnieuw doen:

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

Vervolgens keert de methode, zoals we hadden verwacht, terug false bij het tweede gesprek.

En de mkdir () methode niet alleen terug false als de directory al bestaat maar ook in sommige andere situaties. Er kan bijvoorbeeld een bestand bestaan ​​met de naam van de directory die we willen maken. Of we kunnen de machtigingen missen om deze map te maken.

Met dat in gedachten, moeten we een manier vinden om er zeker van te zijn dat onze directory uiteindelijk bestaat, ofwel hebben we hem gemaakt of hij was er al. Voor dat doel zouden we de isDirectory () methode:

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

Op die manier zorgen we ervoor dat de directory die we nodig hebben aanwezig is.

3. Maak meerdere geneste telefoonboeken

Wat we tot nu toe hebben gezien, werkt goed op een enkele map, maar wat gebeurt er als we meerdere geneste mappen willen maken?

In het volgende voorbeeld zullen we dat zien Bestand :: mkdir werkt daar niet voor:

Bestand newDirectory = nieuw bestand (TEMP_DIRECTORY, "nieuwe_directory"); Bestand nestedDirectory = nieuw bestand (newDirectory, "geneste_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertFalse (nestedDirectory.mkdir ());

Zoals de nieuwe_directory bestaat niet mkdir creëert niet de onderliggende geneste_directory.

echter, de het dossier class biedt ons een andere methode om dat te bereiken - mkdirs (). Deze methode zal zich gedragen als mkdir () maar zal ook alle niet bestaande bovenliggende mappen aanmaken.

In ons vorige voorbeeld zou dit betekenen dat niet alleen geneste_directory, maar ook nieuwe_directory.

Merk op dat we tot nu toe de Bestand (bestand, tekenreeks) constructor, maar we kunnen ook de Bestand (tekenreeks) constructor en geef het volledige pad van ons bestand door met Bestand.separator om de verschillende delen van het pad te scheiden:

Bestand newDirectory = nieuw bestand (System.getProperty ("java.io.tmpdir") + File.separator + "nieuwe_directory"); Bestand nestedDirectory = nieuw bestand (newDirectory, "geneste_directory"); assertFalse (newDirectory.exists ()); assertFalse (nestedDirectory.exists ()); assertTrue (nestedDirectories.mkdirs ());

Zoals we kunnen zien, worden de mappen gemaakt zoals verwacht. Bovendien keert de methode alleen maar terug waar wanneer er ten minste één map is aangemaakt. Wat betreft de mkdir () methode, het zal terugkeren false in de andere gevallen.

Dit betekent dus dat de mkdirs () methode die wordt gebruikt in een directory waarvan de ouders bestaan, zal hetzelfde werken als de mkdir () methode.

4. Conclusie

In dit artikel hebben we twee methoden gezien waarmee we mappen in Java kunnen maken. De eerste, mkdir (), richt zich op het maken van een enkele directory, op voorwaarde dat de ouders al bestaan. De tweede, mkdirs (), is in staat om zowel een directory als de bestaande ouders te maken.

De code van dit artikel is te vinden op onze GitHub.