zoukankan      html  css  js  c++  java
  • 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("文件不存在!");
            }
        }
  • 相关阅读:
    day01--计算机硬件基础笔记
    22 Jun 18 Django,ORM
    21 Jun 18 Django,ORM
    20 Jun 18 复习, mysql
    20 Jun 18 Django,ORM
    19 Jun 18 复习, 正则表达式
    19 Jun 18 Django
    15 Jun 18 复习, shutil模块
    15 Jun 18 Django
    14 Jun 18 复习, form表单
  • 原文地址:https://www.cnblogs.com/invban/p/7975529.html
Copyright © 2011-2022 走看看