问题
我正在使用新的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"))) {
...
}
isDirectory
returnstrue
如果该文件是目录; false
如果该文件不存在,不是目录,或者无法确定该文件是否是目录。
请参阅:documentation。