Java 文件夹递归遍历

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("文件不存在!");
        }
    }
原文地址:https://www.cnblogs.com/invban/p/7975529.html