Java:
Controleren of een directory bestaat
Hoe te:
Hier is hoe je controleert of een directory bestaat met java.nio.file
:
import java.nio.file.Files;
import java.nio.file.Path;
public class DirectoryCheck {
public static void main(String[] args) {
Path directoryPath = Path.of("/pad/naar/directory");
// Controleer of de directory bestaat
boolean directoryExists = Files.exists(directoryPath);
// Print het resultaat
System.out.println("Bestaat de directory? " + directoryExists);
}
}
Als je dit uitvoert, zal je console eenvoudigweg tonen:
Bestaat de directory? true // of false
Veel plezier ermee.
Diepere Duik
Vroeger gebruikten mensen de java.io.File.exists()
methode. Maar java.nio.file.Files.exists(Path)
is nu de topper omdat het veelzijdiger is. Je kunt ook bestandsattributen met dezelfde API controleren.
Maar wacht, er is meer. De Files.exists
methode is niet kogelvrij—er is een raceconditie. Wat als er iets met de directory gebeurt direct nadat je controleert? Bam, je operatie faalt. Om dit te vermijden, gebruik Files.exists
spaarzaam en behandel uitzonderingen correct bij daadwerkelijke bestandsoperaties.
Als alternatief kun je simpelweg de bestandsoperatie proberen en de mogelijke NoSuchFileException
opvangen. Dit staat bekend als “makkelijker om vergiffenis te vragen dan toestemming” (EAFP) versus “kijk voordat je springt” (LBYL), wat is wat Files.exists()
doet.
Zie Ook
- Files.exists()
- Bestand I/O in Java
- Een cool artikel over EAFP vs LBYL: Het EAFP Principe