日期:2014-05-20  浏览次数:20835 次

写一个方法遍历文件夹,参数是目录,返回值是一个文件数组,怎么调用
如题~

------解决方案--------------------
Java code
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListFiles {

    private static List ListFile(File path) {
        // 遍历出的各个文件全路径
        String strPath;
        List fileList = new ArrayList() ;
        File[] files;
        files = path.listFiles(); // 得到一个由文件和目录组成的数组;
        if (files == null){  //如果文件夹不存在或者没有其他文件目录的话,直接返回
            return new ArrayList() ;
        }
        Arrays.sort(files); // 把数组按升序排列;
        for (int i = 0; i < files.length; i++) {
            strPath = files[i].toString();
            // 进行相关操作
            // 递归
            if (files[i].isDirectory()) // 测试是否为目录;
            {
                List tmp = new ArrayList() ;
                System.out.println(files[i].getName()); 
                tmp = ListFile(files[i]); 
                fileList.addAll(tmp) ; //把其中子目录的文件加到list中

            }else{
                fileList.add(files[i]) ;
            }

        }
        return fileList;

    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        File f=new File("F:\\bill\\archive\\afm");

        List files = ListFile(f);
          
          System.out.println("begin...") ;
          String name  ="" ;
        for (int i =0; i < files.size();i++){
            name = ((File)files.get(i)).getName() ;//不要后缀 ,就自己处理一下嘛,太懒啦
//            name = name.substring(0, name.lastIndexOf(".")) ;
            System.out.println("文件名.后缀: " + name + "---文件名:" + name.substring(0, name.lastIndexOf(".")) );
        
        }
        System.out.println("end.") ;

    }

}