java - java listFiles() 只返回文件
问题描述
我注意到该listFiles()
方法返回文件和目录,但是我想filePath
只用文件填充我的数组。我知道有一种isFile()
方法,但我不知道如何结合它listFiles()
来实现我想要的。
我发现了一些类似的问题,但它们是关于在扩展名上应用过滤器,而我没有考虑特定的文件扩展名。
提前致谢!:)
示例代码:
File f = new File (path);
File [] filePath;
filePath = f.listFiles(); // how to modify this to get files only?
解决方案
使用File
API:
File f = new File (path);
File [] files = f.listFiles(File::isFile);
使用Path
设计得更好的 API,您可以编写:
Path dir = Paths.get(path);
List<Path> path =
Files.list(dir)
.filter(Files::isRegularFile)
.collect(Collectors.toList());
或者直接使用以下流Path
:
Path dir = Paths.get(path);
Files.list(dir)
.filter(Files::isRegularFile)
.forEach(p -> doSomethingWithP);
推荐阅读
- python - 读取特定块熊猫/不读取熊猫中的所有块
- ruby-on-rails - 使用 Devise 在 Rails 中划分经过身份验证和未经身份验证的布局
- php - Docusign:沙盒 100% 工作,添加 FORMULATAB 时生产失败
- php - 多个数组值(某些值相同)如何仅获得 2 个相同的值
- amazon-web-services - 在 with_items 循环中迭代 ansible
- c# - 我应该使用 Thread.Sleep() 检查进程是否仍在运行吗?
- c# - 我如何在 xamarin.forms 应用程序中将permissionplugin 与zxing nuget pkg 一起使用?
- powershell - 如何使用 powershell 在 Windows 文件夹中查找第二个最新(访问)文件
- haskell - 如何使用状态单子
- angular - 我怎样才能有一个输入形式的数组?