package util;
import java.io.File;
import java.util.ArrayList;
import entity.FileOfDown;
public class FileUtil {
public static ArrayList<File> getFiles(String absolutePath){
return new FileList(absolutePath).fileList ;
}
/**
*
* 功能: 实现遍历指定绝对路径下的所有文件
* 设计原因: 如果单一使用一个方法,则需要在方法递归的时候传递最终存放文件数组的对象。
* 使用一个类则可以将最终存放结果的数组设置为属性,这样递归方法无论递归多深都可以访问属性。
*
*/
private static class FileList {
public ArrayList<File> fileList = new ArrayList<File>() ;
public FileList(String absolutePath ){
getFiles(absolutePath) ;
}
private void getFiles(String absolutePath ){
File file = new File(absolutePath) ;
if(!file.exists()){
return ;
}
if(file.isDirectory()){
// {@code null} if this abstract pathname does not denote a directory,
//or if an I/O error occurs.
File[] files = file.listFiles() ;
if(files == null || files.length == 0 ){
return ;
}
for(File fileItem : files ){
if(fileItem.isDirectory()){
getFiles(fileItem.getAbsolutePath()) ;
}else{
fileList.add(fileItem) ;
}
}
}else{
fileList.add(file) ;
}
}
}
}