Метод createDirectories
Метод createDirectories класса Files создает директорию,
а также все отсутствующие родительские директории в указанном пути.
Если часть пути уже существует, она не вызывает ошибку.
Первым параметром метод принимает путь к создаваемой директории,
вторым необязательным параметром - набор атрибутов файла,
которые нужно установить при создании.
Метод возвращает объект типа Path - путь к созданной директории.
Если директория уже существует, метод не выбрасывает исключение,
а просто возвращает путь к ней.
Если по указанному пути существует файл, а не директория,
будет выброшено исключение FileAlreadyExistsException.
Синтаксис
Files.createDirectories(path, [attrs])
Пример
Давайте создадим директорию с несколькими вложенными уровнями, которых еще не существует:
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test", "sub", "dir");
Path res = Files.createDirectories(path);
System.out.println(res);
}
}
Результат выполнения кода:
"test/sub/dir"
Пример
Давайте вызовем метод повторно для уже существующей директории и убедимся, что исключение не выбрасывается:
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test", "sub", "dir");
Files.createDirectories(path);
Path res = Files.createDirectories(path);
System.out.println(res);
}
}
Результат выполнения кода:
"test/sub/dir"
Пример
Давайте проверим, что метод выбрасывает исключение, если по указанному пути уже существует файл:
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path file = Path.of("test.txt");
Files.createFile(file);
try
{
Files.createDirectories(file);
}
catch (Exception e)
{
System.out.println(e.getClass().getSimpleName());
}
}
}
Результат выполнения кода:
"FileAlreadyExistsException"
Смотрите также
-
класс
Files,
который содержит методы для работы с файлами -
метод
createDirectory,
который создает одну директорию -
метод
createFile,
который создает новый файл -
метод
isDirectory,
который проверяет, является ли путь директорией