码迷,mamicode.com
首页 > 其他好文 > 详细

递归遍历文件夹中的文件

时间:2015-08-15 13:14:24      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

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) ;
            }
        }
    }
}

 

递归遍历文件夹中的文件

标签:

原文地址:http://www.cnblogs.com/caiyao/p/4732078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!