Java 遍曆檔案夾的2種方法

來源:互聯網
上載者:User

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效能相對好一些。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.