【问题标题】:How to check if a directory exist based on the path java如何根据路径java检查目录是否存在
【发布时间】:2020-06-23 05:07:00
【问题描述】:

例如,我有一个名为“logs/results.log”的路径。 “results.log”是一个文件。我想知道文件路径中的目录是否存在。注意文件路径是字符串。

注意:我想检查给定路径中包含的目录是否存在。对于我的示例,我想检查“logs/”是否为目录,但不检查“logs/results.log”是否为目录。我的困惑之一是目录是“logs”还是“logs/”。

【问题讨论】:

  • 这能回答你的问题吗? How to check if a folder exists
  • 不,我想问的是路径中包含的目录是否存在。例如,我有文件路径“logs/results.log”,我想知道“logs/”是否是有效目录。如果我理解正确,给出的问题只检查给定的字符串是路径还是目录。

标签: java


【解决方案1】:

使用Files.isDirectory

private static boolean dirExists(String file) {
    Path parent = Paths.get(file).getParent();
    return parent != null && Files.isDirectory(parent);
}

用法:

System.out.println(dirExists("logs/results.log"));

【讨论】:

    【解决方案2】:
    File file = new File("logs/results.log");
    
    if (file.exists() && file.getParentFile() != null && file.getParentFile().isDirectory()) {
        System.out.println("Parent file is a directory.");
    }
    

    【讨论】:

    • file.getParentFile() 可能会返回 null。您将获得 NPE。
    • @ZhekaKozlov 是的,你是对的。我已经更新了答案。
    【解决方案3】:

    使用 java.nio.file.Files:

    Path path = logs/result.log;
    
    if (Files.exists(path)) {
    // ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多