java:递归打印子孙级目录和文件名称 以及统计文件大小

1、递归打印子孙级目录和文件名称

package com.sxt.io;

import java.io.File;

/**
 *  递归: 方法自己调用自己 
 *  打印子孙级目录和文件的名称
 *
 */
public class DirDemo04 {
    public static void main(String[] args) {
        File src =  new File("D:\\java300\\IO_study01");
        printName(src,0);
    }
    //打印子孙级目录和文件的名称
    public static void printName(File src,int deep) {
        //控制前面层次
        for(int i=0;i<deep;i++) {
            System.out.print("-");
        }
        //打印名称
        System.out.println(src.getName());    
        if(null ==src || !src.exists()) {  //递归头
            return ;
        }else if(src.isDirectory()) { //目录
            for(File s:src.listFiles()) {
                printName(s,deep+1); //递归体
            }
        }
    }
}

2、统计文件大小

package com.sxt.io;

import java.io.File;

/**
 *  统计文件夹的大小
 *
 */
public class DirDemo05 {
    public static void main(String[] args) {
        File src =  new File("D:\\java300\\IO_study01");
        count(src);
        System.out.println(len);
    }
    private static long len =0;
    public static void count(File src) {    
        //获取大小
        if(null!=src && src.exists()) {
            if(src.isFile()) {  //大小
                len+=src.length();
            }else { //子孙级
                for(File s:src.listFiles()) {
                        count(s);
                }
            }
        }
    }
}

 

 
posted @ 2020-05-17 12:49  孤灯伴码农  阅读(...)  评论(...编辑  收藏