首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java遍历文件夹的2种方法

2013-01-27 
Java遍历文件夹的2种方法:A:不使用递归import java.io.Fileimport java.util.LinkedListpublic class Fo

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[i].isDirectory())                list.add(file[i]);            else                System.out.println(file[i].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[i].isDirectory())                        list.add(file[i]);                    else                        System.out.println(file[i].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[i].isDirectory()) {                 refreshFileList(files[i].getAbsolutePath());             } else {                 String strFileName = files[i].getAbsolutePath().toLowerCase();                System.out.println("---"+strFileName);                filelist.add(files[i].getAbsolutePath());                                }         }     }}

?
结论:经过测试,使用递归的方法B性能相对好一些。?

热点排行