利用java获取某个文件夹下的所有文件
作者:十年(Sugar)
这篇文章主要给大家介绍了关于如何利用java获取某个文件夹下的所有文件的相关资料,在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,需要的朋友可以参考下
一.前言
在我们平时编写开发文档的时候, 我们会获取到项目文件中的所有子文件来展示我们的源代码所储存的位置, 获取我们项目下的所有文件路径, 这时我们会如何用Java代码来获取我们项目下的所有文件呢, 今天我们来比编写一下代码
二.获取文件夹下的文件路径
在测试类里编写下列代码:
@Test
public void test2() {
//路径 这里写一个路径进去
String path="自己项目所在本机路径(全路径)";
//调用方法
getFiles(path);
}
public static void getFiles(String path) {
File file = new File(path);
// 如果这个路径是文件夹
if (file.isDirectory()) {
// 获取路径下的所有文件
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
// 如果还是文件夹 递归获取里面的文件 文件夹
if (files[i].isDirectory()) {
//System.out.println("目录:" + files[i].getPath());
getFiles(files[i].getPath());
} else {
System.out.println("文件:" + files[i].getPath());
}
}
} else {
System.out.println("文件:" + file.getPath());
}
}执行结果:

我看网上还有其他的方法, 希望大家留言推荐一下其他方法, 测试完之后将反馈给大家
附:java读取文件夹下所有文件和目录的两种方法
以下2中办法核心都是递归,只不过数据返回的不一样,第一种返回路径、子文件夹、子文件,第二种就是文件路径 可以自由扩展
第一种办法
public static JSONArray traverseFolder2(String path) {
JSONArray jsonArray=new JSONArray();
File file = new File(path);
if (file.exists()) {//判断文件是否存在
File[] files = file.listFiles();//获取所有子文件夹
if (null == files || files.length == 0) {
System.out.println("文件夹是空的!");
return null;
} else {
List<File> fileList = new ArrayList<>();//存储所有文件
List<JSONArray> childrens = new ArrayList<>();//存储所有文件夹
JSONObject jsonObject=new JSONObject();
jsonObject.put("path",path);
for (File file2 : files) {
if (!file2.isDirectory()) {//判断是否是文件夹
fileList.add(file2);
} else {
childrens.add(traverseFolder2(file2.getAbsolutePath()));
}
}
jsonObject.put("filelist",fileList);
jsonObject.put("childrens",childrens);
jsonArray.add(jsonObject);
}
} else {
System.out.println("文件不存在!");
}
return jsonArray;
}第二种办法
第一次new一个空集合放进去就好
public static ArrayList<String> readFiles1(String path, ArrayList<String> fileNameList) {
File file = new File(path);
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
readFiles1(files[i].getPath(), fileNameList);
} else {
String path1 = files[i].getPath();
String fileName = path1.substring(path1.lastIndexOf("\\") + 1);
fileNameList.add(fileName);
}
}
} else {
String path1 = file.getPath();
String fileName = path1.substring(path1.lastIndexOf("\\") + 1);
fileNameList.add(fileName);
}
return fileNameList;
}总结
到此这篇关于利用java获取某个文件夹下的所有文件的文章就介绍到这了,更多相关java获取文件夹所有文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
