Controleren of een directory bestaat

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