Java 資料夾遞迴遍歷

木子小僧發表於2017-12-04
import java.io.File;

public class Demo1 {  
    public static void main(String[] args) {  
        File dir=new File("D:\\CCC");//瀏覽F盤a資料夾下的所有內容  
        listFile(dir,"");  
    }  
public static void listFile(File dir,String spance)  
    {  
        File[] files=dir.listFiles();   //列出所有的子檔案  
        for(File file :files)  
        {  
            if(file.isFile())//如果是檔案,則輸出檔名字  
            {  
                System.out.println(spance+file.getName());  
            }else if(file.isDirectory())//如果是資料夾,則輸出資料夾的名字,並遞迴遍歷該資料夾  
            {   
                System.out.println(spance+file.getName()); 
                listFile(file,"|--"+spance);//遞迴遍歷  
            }  
        }  
    }
} 

解壓效果如下:

 在專案中,往往會遇到,遍歷資料夾中的檔案,分清裡面配置檔案的父子關係,程式碼如下:

/**
     * 資料夾遍歷
     * @param path
     * @throws Exception
     */
    public void traverse(String path,String parent_id) throws Exception {
        System.out.println("path---->" + path);
        File file = new File(path);
        Map<String, Object> map = new HashMap<String, Object>();
        if (file.exists()) {
            File[] files = file.listFiles();
            if (files.length == 0) {
                System.out.println("資料夾是空的!");
                return;
            } else {
                String k_id = UuidUtil.get32UUID();
                for (File file2 : files) {
                    if (file2.isFile()){//檔案
                        if (file2.getName().endsWith(".cfg")) {
                            System.out.println("檔案:" + file2.getAbsolutePath());
                            map = readCfg(new FileInputStream(file2));
                            System.out.println("-------------"+file2.getAbsolutePath()+"--start-----------");
                            map.put("k", kvalue);
                            parent_id = k_id;
                            System.out.println("-------------"+file2.getAbsolutePath()+"--end-----------");
                        }
                    }
                }
                for (File file2 : files) {
                    if (file2.isDirectory()) {//資料夾
                        traverse(request,file2.getAbsolutePath(),parent_id);
                        parent_id =  k_id;
                    }
                }
            }
        } else {
            System.out.println("檔案不存在!");
        }
    }

 

相關文章