/**
* 递归读取文件夹下所有文档
* @author Administrator
*
*/
public class FileLoop{
private static List<File> fileList = new ArrayList<File>();
public static void main(String[] args) {
List<File> list = fileReadLoop("c:/dir");
for(int i=0; i<list.size(); i++){
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(list.get(i).lastModified()))+":"+list.get(i).getName());
}
}
/**
* 循环获取指定文件夹下的所有文件
* @param path
*/
private void loopReadDir(String path){
File filePath = new File(path);
File[] list = filePath.listFiles();
if(list!=null && list.length>0){
for(int i=0; i<list.length; i++){
File f = list[i];
if(f.isFile() && !f.isHidden()){
fileList.add(f);
}else if(f.isDirectory() && !f.isHidden()){
loopReadDir(f.getPath());
}
}
}
}
/**
* 将文件按日期排序
* @param list
* @return
*/
private void sortFileList(){
//按文件日期排序
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
if(o1.lastModified() > o2.lastModified()){
return -1;
}else if(o1.lastModified() == o2.lastModified()){
return 0;
}else{
return 1;
}
}
});
}
/**
* 调用静态方法
* @param path
* @return
*/
public static List<File> fileReadLoop(String path) {
FileLoop fileCon = new FileLoop();
fileCon.loopReadDir(path);
fileCon.sortFileList();
return fileList;
}
}