我注意到listFiles()
方法返回文件和目录,但是我想填充我的数组 filePath
仅包含文件。我知道有一个isFile()
方法,但我不知道如何将它与 listFiles()
结合起来来实现我想要的。
我发现了一些类似的问题,但它们是关于在扩展名上应用过滤器,而我心里没有特定的文件扩展名。
提前致谢! :)
示例代码:
File f = new File (path);
File [] filePath;
filePath = f.listFiles(); // how to modify this to get files only?
最佳答案
使用文件
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);
关于java listFiles() 仅返回文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51679526/