Java用递归方式扫描文件夹底下所有文件

时间:2019-10-22
本文章向大家介绍Java用递归方式扫描文件夹底下所有文件,主要包括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.测试效果:

原文地址:https://www.cnblogs.com/q580syp/p/11719199.html