由于工作需求扫描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.源文件夹图示:

java 扫描全盘 java 扫描文件夹下所有文件_java

 

 3.测试效果:

java 扫描全盘 java 扫描文件夹下所有文件_Java_02