如何在Java中检查目录是否为空
我想检查Java中的目录是否为空。但是该目录中可能有很多文件,因此如果可能的话,我想在不查询其文件列表的情况下执行此操作。
我想检查Java中的目录是否为空。但是该目录中可能有很多文件,因此如果可能的话,我想在不查询其文件列表的情况下执行此操作。
在 JDK7 中,您可以使用 Files.newDirectoryStream 打开目录,然后使用迭代器的 hasNext() 方法来测试是否有任何文件要迭代(不要忘记关闭流)。与java.io.File list方法相比,这应该更适合大型目录或目录位于远程文件系统上的位置。
例:
private static boolean isDirEmpty(final Path directory) throws IOException {
try(DirectoryStream<Path> dirStream = Files.newDirectoryStream(directory)) {
return !dirStream.iterator().hasNext();
}
}
File parentDir = file.getParentFile();
if(parentDir.isDirectory() && parentDir.list().length == 0) {
LOGGER.info("Directory is empty");
} else {
LOGGER.info("Directory is not empty");
}