如何解决在 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 举报,一经查实,本站将立刻删除。