问题:Java中如何读取文件夹下的所有文件

Java里面是如何读取一个文件夹下的所有文件的?

回答一

public void listFilesForFolder(final File folder) {for (final File fileEntry : folder.listFiles()) {if (fileEntry.isDirectory()) {listFilesForFolder(fileEntry);} else {System.out.println(fileEntry.getName());}}
}final File folder = new File("/home/you/Desktop");
listFilesForFolder(folder);

Java 8里面有个Files.walk API

try (Stream<Path> paths = Files.walk(Paths.get("/home/you/Desktop"))) {paths.filter(Files::isRegularFile).forEach(System.out::println);
}

这个例子使用到了 API 指引推荐使用的try-with-resources pattern 。它确保了无论任何情况stream都会关闭。

回答二


File folder = new File("/Users/you/folder/");
File[] listOfFiles = folder.listFiles();for (File file : listOfFiles) {if (file.isFile()) {System.out.println(file.getName());}
}

回答三

在Java8里面你可以这样干

Files.walk(Paths.get("/path/to/folder")).filter(Files::isRegularFile).forEach(System.out::println);

这会打印文件夹下的所有除了目录以外的文件,如果你需要一个list,你可以这样干

Files.walk(Paths.get("/path/to/folder")).filter(Files::isRegularFile).collect(Collectors.toList())

如果你想要返回 List而不是List,直接映射就完事了

List<File> filesInFolder = Files.walk(Paths.get("/path/to/folder")).filter(Files::isRegularFile).map(Path::toFile).collect(Collectors.toList());

你也同样要保证关闭stream。否则你会遇到异常,说你打开太多文件了

回答三

Files.walk(path)会返回所有的文件通过遍历从以给定的开始文件作为根节点的文件树

例如这是一颗文件树

\---folder|   file1.txt|   file2.txt|\---subfolderfile3.txtfile4.txt

使用java.nio.file.Files.walk(Path):

Files.walk(Paths.get("folder")).filter(Files::isRegularFile).forEach(System.out::println);

出现下列结果

folder\file1.txt
folder\file2.txt
folder\subfolder\file3.txt
folder\subfolder\file4.txt

使用 java.nio.file.Files.list(Path)获取当前目录下的所有文件:

Files.list(Paths.get("folder")).filter(Files::isRegularFile).forEach(System.out::println);

结果是:

folder\file1.txt
folder\file2.txt

文章翻译自Stack Overflow:https://stackoverflow.com/questions/1844688/how-to-read-all-files-in-a-folder-from-java

Java中如何读取文件夹下的所有文件相关推荐

  1. java 文件夹下的文件_java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class  ...

  2. java命令 jar文件夹_java中jar命令打包一个文件夹下的所有文件

    (1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help 出现C:\Documents and Settings\dly>jar -help 非法选项:h 用法:j ...

  3. r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  4. java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class  ...

  5. java中如何删除文件或清除文件夹下的所有文件

    java中如何删除文件或清除文件夹下的所有文件呢?现实中如果一个java项目中涉及非常多的删除文件操作,我们最好单独写一个函数实现文件的删除操作,以下是函数的实现: // 删除文件 或者 清除文件夹下 ...

  6. java 读取文件夹下的所有文件和文件夹名

    java 读取文件夹下的所有文件和文件夹名 用File import java.io.File; import java.util.HashMap; import java.util.Map; imp ...

  7. java 读文件夹_java怎么读取读取文件夹下的所有文件夹和文件?

    下是实现的代码:package com.borland.samples.welcome; import java.io.FileNotFoundException; import java.io.IO ...

  8. java怎么读取文件夹下的_java怎么读取读取文件夹下的所有文件夹和文件?

    下是实现的代码:package com.borland.samples.welcome; import java.io.FileNotFoundException; import java.io.IO ...

  9. java读取文件夹_Java读取某个文件夹下的所有文件(支持多级文件夹)

    packagecom.vocy.water.batch;importjava.io.FileNotFoundException;importjava.io.IOException;importjava ...

最新文章

  1. eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法
  2. php 3个循环,For循环只发布数组的前3个元素 - PHP(For loop is only posting first 3 elements of array - PHP)...
  3. C# mschart 控件的基本使用和图表控件Series的概念
  4. Oracle dblink报错:ORA-01017、ORA-02063解决
  5. [js] 用js写一个方法检测浏览器是否支持css3的属性
  6. react-native 显示html,react-native-webview加载本地H5
  7. elasticsearch5.0.1集群排错的几个思路总结
  8. HDU2501 Tiling_easy version【递推+打表】
  9. python入门指南全文阅读-Python-3.4-入门指南(官方中文版).pdf
  10. 猜数游戏--MOOC中习题
  11. 一个Lambda引发的血案
  12. AngularJs HelloWorld
  13. 一键报警(IP对讲)
  14. Js数据类型间的相互转换
  15. 移动光猫超级管理员密码获取
  16. 【Android 学习】之二维码扫描开发(闪光灯功能)
  17. google之Thumbnails图片等比压缩,保持图片清晰
  18. 计算机通信过程详解 与 arp欺骗
  19. Trinity的介绍与下载
  20. 使用idea将dev分支合并到master分支

热门文章

  1. 【数据库】数据模型基础概念(图文版)
  2. stm32机械臂资料含视频
  3. 1079. Total Sales of Supply Chain (25)
  4. 【Leetcode | 1】3. 无重复字符的最长子串
  5. Java架构师教你如何突破瓶颈,持续更新中
  6. 目前最全的《Android面试题及解析》!面试真题解析
  7. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
  8. Eclipse 构建Maven项目
  9. 关于反射Assembly.Load(程序集).CreateInstance(命名空间.类)
  10. Python快速学习03:运算 缩进和选择