Java - как создать файл по неизвестному / переменному пути? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть каталог: <dir>\Report\<env>\Log_XXX\Logs, где XXX случайно создается во время выполнения, поэтому мне нужно создать файл в папке Logs .

Послея попытался сгенерировать папку Logs :

new File(System.getProperty("user.dir") + "/Report/" + System.getProperty("env") + "/" + Pattern.compile("^Log_") + "/Logs").mkdirs();

1 Ответ

1 голос
/ 16 июля 2019

Судя по вашим комментариям, вы пытаетесь найти единственный и единственный подкаталог, базовое имя которого начинается с Log_.Вы можете сделать это с помощью Files.list :

Path logParent = Paths.get(
    System.getProperty("user.dir"),
    "Report",
    System.getProperty("env"));

Path logDir;
try (Stream<Path> listing = Files.list(logParent)) {
    Optional<Path> match = listing.filter(p -> Files.isDirectory(p) &&
        p.getFilename().toString().startsWith("Log_")).findFirst();
    logDir = match.orElseThrow(() -> new RuntimeException(
        "No log directory found in " + logParent));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...