由于工作需求扫描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.测试效果: