Использование Java nio для создания подкаталога и файла

Я создаю простую программу, которая попытается прочитать в "conf/conf.xml" с диска, но если этот файл или каталог не существует, вместо этого создаст их.

Я могу сделать это, используя следующий код:

    // create subdirectory path
    Path confDir = Paths.get("./conf"); 

    // create file-in-subdirectory path
    Path confFile = Paths.get("./conf/conf.xml"); 

    // if the sub-directory doesn't exist then create it
    if (Files.notExists(confDir)) { 
        try { Files.createDirectory(confDir); }
        catch (Exception e ) { e.printStackTrace(); }
    }

    // if the file doesn't exist then create it
    if (Files.notExists(confFile)) {
        try { Files.createFile(confFile); }
        catch (Exception e ) { e.printStackTrace(); }
    }

Мои вопросы: действительно ли это самый элегантный способ сделать это? Кажется, что нужно создать два простых пути для создания нового файла в новом подкаталоге.

Ответы

Ответ 1

Вы можете объявить свой confFile как File вместо Path. Затем вы можете использовать confFile.getParentFile().mkdirs();, см. Пример ниже:

// ...

File confFile = new File("./conf/conf.xml"); 
confFile.getParentFile().mkdirs();

// ...

Или, используя свой код как есть, вы можете использовать:

Files.createDirectories(confFile.getParent());