Проверка существования директории

Java:
Проверка существования директории

Как это сделать:

Вот как проверить существует ли каталог с 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("/path/to/directory");

        // Проверяем, существует ли каталог
        boolean directoryExists = Files.exists(directoryPath);

        // Выводим результат
        System.out.println("Существует ли каталог? " + directoryExists);
    }
}

Если вы запустите это, в вашей консоли просто отобразится:

Существует ли каталог? true // или false

Ударяйте.

Погружение в детали

В прошлом люди использовали метод java.io.File.exists(). Но теперь актуальность приобрел java.nio.file.Files.exists(Path), поскольку он более универсален. С помощью того же API вы также можете проверять атрибуты файла.

Но это еще не все. Метод Files.exists не является непробиваемым — есть условия гонки. Что, если с каталогом что-то случится сразу после проверки? Бац, и операция проваливается. Чтобы этого избежать, используйте Files.exists с осторожностью и корректно обрабатывайте исключения при выполнении операций с файлами.

В качестве альтернативы, вы можете просто попытаться выполнить операцию с файлом и поймать возможное исключение NoSuchFileException. Это известно как подход “легче просить прощения, чем разрешения” (EAFP) против “смотри прежде, чем прыгнуть” (LBYL), который использует Files.exists().

Смотрите также