微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 forEach 循环中迭代,Stream<Path>

如何解决在 forEach 循环中迭代,Stream<Path>

代码将打印根目录下的所有目录 destDir 但是我想在执行 ForEach 时获取字符串变量或链表中的目录名称

不太习惯使用这个forEach子句,那么我应该在forEach循环中做什么来获取目录的名称?用一些不错的代码替换 System.out::println

try (Stream<Path> paths = Files.walk(Paths.get(destDir))) {
    paths.filter(Files::isDirectory).forEach(System.out::println); 
}

解决方法

你可以使用 File.list 方法并赋值给数组:

String[] pathnames = new File("destDirPath").list();

这将查找所有文件和目录。如果你只想找到目录,你可以使用这样的过滤器:

FilenameFilter filter = new FilenameFilter() {
    @Override
    public boolean accept(File f,String name) {
        return f.isDirectory();
    }
};

使用过滤器作为参数:

File[] onlyDirs = new File("destDirPath").listFiles(filter);

您可以使用 getName() 方法获取目录名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。