Java-如何在未知/可变路径下创建文件?

时间:2019-07-11 14:02:09

标签: java regex

我有一个目录:<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 个答案:

答案 0 :(得分:1)

根据您的评论,您似乎正在尝试查找其基名称以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));
}