получить специфицированный c подкаталог в java, используя пути - PullRequest
1 голос
/ 11 февраля 2020

чтобы получить подкаталоги каталога, который я сейчас использую

Paths.get(currentpath.toString(), "subdirectory");

Есть ли лучший способ? Мне особенно не нравится вызов toString, и я предпочел бы не использовать .toFile(), если это возможно.

Я пытался найти это здесь, но я нашел только ответы о старом API или о том, что я в настоящее время использую или совершенно не связанные вопросы.

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете просто resolve имя подкаталога против root Path следующим образом:

public static void main(String[] args) {
    // definition of the root directory (adjust according to your system)
    String currentPath = "C:\\";
    Path root = Paths.get(currentPath);

    // get a specific subdirectory by its name
    String specificSubDir = "temp";
    // resolve its name against the root directory
    Path specificSubDirPath = root.resolve(specificSubDir);

    // and check the result
    if (Files.isDirectory(specificSubDirPath)) {
        System.out.println("Path " + specificSubDirPath.toAbsolutePath().toString()
                + " is a directory");
    } else {
        System.err.println("Path " + specificSubDirPath.toAbsolutePath().toString()
                + " is not a directory");
    }
}

Поскольку у меня есть каталог C:\temp\, вывод в моей системе будет

Path C:\temp is a directory
...