Java中使用遍历文件夹的2种方法
时间:2009-6-2 10:04:51 作者: 来源:
 

    a.不使用递归:


import java.io.file;
import java.util.linkedlist;
public class filesystem {
    public static void main(string[] args) {

        long a = system.currenttimemillis();

        linkedlist list = new linkedlist();
        file dir = new file("c:\\java\\");
        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 filesystem1 {
    private static arraylist filelist = new arraylist();

    public static void main(string[] args) {

        long a = system.currenttimemillis();
        refreshfilelist("c:\\java");
        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性能相对好一些。

上一篇:
下一篇:
 
网页模板 网站模板 网站建设 网页设计 网页设计师兼职 自助建站 ...
网站魔坊,网页模板,网站模板,免费网页模板,在线模板设计,免费建站,门户网站搭建,建站,企业网站,奇思网络,奇思,智能建站,自助建站,拖动建站,网站建设,网页设计,在线设计模板
www.wzmof.com/ 47K 2009-5-21
 
商巢...
商巢是一个真实的商业交友社区、为用户提供交友、贸易、社区、建站等服务;临渊慕鱼,不如退而结网!商巢结网行动
www.ncooo.com/ 47K 2009-5-21
 
商巢创业 门户创业 商人网络家园 魔坊建站 商业交友
商巢下的门户,门户又一独立实体与商巢合作,由商巢负责技术的更新以及硬件的支持,门户负责自己领域的市场推广以及相应的售后服务即可。 打破以往门户需要源源不断的技术、硬件投入模式,盈利模式清晰 行业门户以及门户下企业网站由网站魔坊...
mhcy.ncooo.com/ 36K 2009-5-14
 
奇思网络技术 网站建设 深圳网站建设
中小外贸企业做电子商务,需要从两点技术突围 08-01 企业网站建设 提供网站策划、网站建设、数据库开发至网络营销全套解决方案。能针对客户所处行业,结合营销特征量身订做高质量网站建设方案。 网站推广 怎样使网站的投资得到回报?这需要经验...
www.qsnet.com.cn/ 48K 2009-4-2
 
深圳艺术网
深圳艺术网,中国艺术网,中国当代艺术网,广东当代艺术网,广东艺术网,南方当代艺术网,深圳美术网,深港美术网,深港艺术网,深港当代艺术网,杜应红,深圳当代艺术创作库,深圳创库,深圳美术,深圳艺术,深圳收藏,深圳艺术收藏,深圳音乐网,深圳舞蹈...
www.szarts.cn/ 119K 2009-6-9
 
网页设计也通过人脉赚钱-技术传播
 
网页设计114 -打造中国网页设计、网站建设技术信息学习、交流、互动平台
                         打造网页设计师兼职创业平台中心