Java,列出目录中仅包含子目录而非文件的列表

122

在Java中,如何列出目录下仅包含子目录的内容?

我想使用java.io.File功能,那么在Java中怎样做最好呢?

13个回答

0

给定一个起始目录作为String

  1. 创建一个以String路径为参数的方法。在该方法中:
  2. 基于起始目录创建一个新的File对象
  3. 使用listFiles方法获取当前目录中的文件数组
  4. 循环遍历文件数组
    1. 如果是文件,则继续循环
    2. 如果是目录,则打印名称并对这个新目录路径进行递归

嗨,感谢回复。但是我不必遍历目录中的所有项目。我必须直接列出目录中的子目录。因为我有很多文件,但只有很少的子目录在目录中,所以检查isDirectory()会耗费时间。请回复另一种方法。 - Lokesh Paunikar

0

请问您能否避免使用第三方库?肯定有一些工具可以用不到一行代码来实现它 ;) - Fuad Efendi

0

您可以使用JAVA 7的文件API

Path myDirectoryPath = Paths.get("path to my directory");
List<Path> subDirectories = Files.find(
                    myDirectoryPath ,
                    Integer.MAX_VALUE,
                    (filePath, fileAttr) -> fileAttr.isDirectory() && !filePath.equals(myDirectoryPath )
            ).collect(Collectors.toList());

如果您想要特定的值,可以在收集数据之前使用所需的值调用map。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接