061041033 发表于 2013-1-26 14:42:15

Java遍历文件夹的2种方法:

A:不使用递归import java.io.File;import java.util.LinkedList;public class Folder {    public static void main(String[] args) {                long a = System.currentTimeMillis();                LinkedList<File> list = new LinkedList<File>();      File dir = new File("c:/test");      File file[] = dir.listFiles();      for (int i = 0; i < file.length; i++) {            if (file.isDirectory())                list.add(file);            else                System.out.println(file.getAbsolutePath());      }      File tmp;      while (!list.isEmpty()) {            tmp = list.removeFirst();            if (tmp.isDirectory()) {                file = tmp.listFiles();                if (file == null)                  continue;                for (int i = 0; i < file.length; i++) {                  if (file.isDirectory())                        list.add(file);                  else                        System.out.println(file.getAbsolutePath());                }            } else {                System.out.println(tmp.getAbsolutePath());            }      }                System.out.println(System.currentTimeMillis() - a);    }} 
B:使用递归import java.io.File;import java.util.ArrayList;public class Folder2 {    private static ArrayList<String> filelist = new ArrayList<String>();         public static void main(String[] args) {                long a = System.currentTimeMillis();      refreshFileList("c:/test");      System.out.println(System.currentTimeMillis() - a);    }    public static void refreshFileList(String strPath) {         File dir = new File(strPath);         File[] files = dir.listFiles();               if (files == null)             return;         for (int i = 0; i < files.length; i++) {             if (files.isDirectory()) {               refreshFileList(files.getAbsolutePath());             } else {               String strFileName = files.getAbsolutePath().toLowerCase();                System.out.println("---"+strFileName);                filelist.add(files.getAbsolutePath());                              }         }   }} 
结论:经过测试,使用递归的方法B性能相对好一些。 
页: [1]
查看完整版本: Java遍历文件夹的2种方法: