java listFiles() 仅返回文件

标签 java

我注意到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/

相关文章:

java - 将对象移动到一个点 android

java - 如何检索用户登录 ID

java - 无法连接到远程虚拟机

java - 无法超越 while 循环

java - 在 PHP 代码中运行 Java 程序

java - 如何在另一个线程运行时禁用文本框

java - 使用 JSON Parser 访问 JSON 字符串中的第一个数组

java - 使用 Eclipse IDE 在 Debug模式下加速 Tomcat

来自 Vertx 和 AMQPBridge 的 Java 运行时警告

java - objectInputStream.readObject() 抛出异常 java.io.OptionalDataException