Java用递归方式扫描文件夹底下所有文件
由于工作需求扫描linux服务器目录底下的所有文件(当然Windows下的也可以哦),所以特此用递归方式:
1.上代码
package com.yinxin.control; import java.io.File; import java.util.ArrayList; import java.util.List; /** * @version 1.0 递归扫描文件夹 * @author syp * @time 2019年10月22日11:16:00 */ public class Test { private static ArrayList<Object> listFiles = new ArrayList<Object>(); public static ArrayList<Object> listFilesWithRecursion(String folderPath) throws Exception{ ArrayList<String> dirctorys = new ArrayList<String>(); File directory = new File(folderPath); if(!directory.isDirectory()){ throw new Exception('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory"); } if(directory.isDirectory()){ File [] filelist = directory.listFiles(); //路径名的目录中的文件和目录的数组 for(int i = 0; i < filelist.length; i ++){ /**如果当前是文件夹,进入递归扫描文件夹**/ if(filelist[i].isDirectory()){ dirctorys.add(filelist[i].getAbsolutePath()); /**递归扫描下面的文件夹**/ listFilesWithRecursion(filelist[i].getAbsolutePath()); } /**非文件夹**/ else{ listFiles.add(filelist[i].getAbsolutePath()); } } } return listFiles; } public static void main(String[] args) { try { List<Object> list=listFilesWithRecursion("E:\\totest\\"); for(Object str:list){ System.out.println("遍历文件夹【"+str+"】"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
2.源文件夹图示:

3.测试效果:

浙公网安备 33010602011771号