如何检查文件夹是否存在

问题

我正在使用新的Java 7 IO功能,实际上我试图接收文件夹的所有xml文件。但是当文件夹不存在时会引发异常,如何检查该文件夹是否与新IO一起存在?

public UpdateHandler(String release) {
    log.info("searching for configuration files in folder " + release);
    Path releaseFolder = Paths.get(release);
    try(DirectoryStream<Path> stream = Files.newDirectoryStream(releaseFolder, "*.xml")){

        for (Path entry: stream){
            log.info("working on file " + entry.getFileName());
        }
    }
    catch (IOException e){
        log.error("error while retrieving update configuration files " + e.getMessage());
    }


}

#1 热门回答(181 赞)

Usingjava.nio.file.Files

Path path = ...;

if (Files.exists(path)) {
    // ...
}

你可以选择传递此方法LinkOption值:

if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {

还有一个方法notExists

if (Files.notExists(path)) {

#2 热门回答(157 赞)

非常简单:

new File("/Path/To/File/or/Directory").exists();

如果你想确定它是一个目录:

File f = new File("/Path/To/File/or/Directory");
if (f.exists() && f.isDirectory()) {
   ...
}

#3 热门回答(40 赞)

要检查新IO是否存在目录:

if (Files.isDirectory(Paths.get("directory"))) {
  ...
}

isDirectoryreturnstrue如果该文件是目录; false如果该文件不存在,不是目录,或者无法确定该文件是否是目录。

请参阅:documentation