zoukankan      html  css  js  c++  java
  • 递归应用:遍历文件夹

    public class FileList {
        public static void main(String[] args) {
            printFiles(new File("d:/Program Files"));
        }
    
        public static void printFiles(File file) {
            if (file.isDirectory()) { //判断文件是不是文件夹
                File fileArray[] = file.listFiles();
                for (int i = 0; i < fileArray.length; i++) {
                    System.out.println(fileArray[i].getName());
                    if (fileArray[i].isDirectory()) { //判断每个文件是不是文件夹
                        printFiles(fileArray[i]);//递归
                    }
                }
            } else {
                System.out.println(file.getName());
    
            }
        }
    }

     控制台输出如下:

    下面对代码进行一些优化让输出的文件目录变得更清晰:

    public class FileList {
        public static void main(String[] args) {
            printFiles(new File("d:/Program Files"),1);
        }
    
        public static void printFiles(File file,int tab) {
            if (file.isDirectory()) { //判断文件是不是文件夹
                File fileArray[] = file.listFiles();
                for (int i = 0; i < fileArray.length; i++) {
                    for (int j = 0; j < tab; j++) {
                        System.out.print("|--");
                    }
                    System.out.println(fileArray[i].getName());
                    if (fileArray[i].isDirectory()) { //判断每个文件是不是文件夹
                        printFiles(fileArray[i],tab+1);//递归  tab+1:如果有子目录变量tab+1
                    }
                }
            } else {
                System.out.println(file.getName());
    
            }
        }
    }

  • 相关阅读:
    02-Maven安装配置
    01-Maven功能特点
    安装Jenkins服务
    Python操作Saltstack
    基于Python自动上传包到nexus仓库
    避免代码merge后无法构建发布(GItlabCI + Jenkins)
    SonarQube-Centos环境设置为系统服务
    SonarQube配置LDAP认证集成
    Centos7 搭建Go语言编译环境
    OpenShift-EFK日志管理
  • 原文地址:https://www.cnblogs.com/sflik/p/4550619.html
Copyright © 2011-2022 走看看