5.6Java File对象使用递归打印子孙级目录以及文件的名称
2021/5/6 20:25:43
本文主要是介绍5.6Java File对象使用递归打印子孙级目录以及文件的名称,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
5.6Java File对象使用递归打印子孙级目录以及文件的名称
File对象使用递归打印子孙级目录
package ioStudy; import java.io.File; /** * 递归--->方法自己调用自己 * 目标: * 打印子孙级目录 * 打印文件名称 * @author Lucifer */ public class TestDirDemo3 { public static void main(String[] args) { /*主方法*/ File src = new File("D:/workspace/practice/main/java/collection"); //调用方法 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 f : src.listFiles()){ //打印出名字 /*递归体*/ printName(f,deep + 1); //这样比较没有层次感,加形参 } } } } /* 步骤: 1.传一个路径 2.打印名称 3.判断是否有下一级 有继续打印 没有直接返回结束方法 */
File对象打印文件夹的大小---封装方法
DirCount类:
package ioStudy; import java.io.File; /** * 使用面向对象的方法 * 统计文件夹的大小 * ---将方法进行封装处理 * @author Lucifer */ public class DirCount { /*定义属性*/ //大小 private long len; //文件夹路径 private String path; //查看文件个数 private int fileSize; //文件夹的个数--->目录个数 private int dirSize = -1; //源数据--->根据路径构造File对象 private File src; /*构造器*/ public DirCount(String path) { this.path = path; this.src = new File(path); //构件 count(this.src); } //生成一个getLen的方法 public long getLen() { return len; } //生成属性相应的get方法 public int getFileSize() { return fileSize; } public int getDirSize() { return dirSize; } /*统计大小处理 ---新写方法*/ private void count(File src){ //获取大小 if (null != src && src.exists()){ if (src.isFile()){ //获得大小 len += src.length(); //如果是文件,fileSize自增 this.fileSize++; }else { //如果不是文件则fileDir++ this.dirSize++; //子孙级--->循环打印 for (File f : src.listFiles()){ count(f); } } } } /* 1.如果是文件则直接获得大小 2.如果是文件夹则通过子孙级获得大小 */ }
Test方法:
package ioStudy; public class TestDirCount { //主方法 public static void main(String[] args) { /*实例化对象*/ DirCount dir = new DirCount("D:/workspace/practice/main/java/collection"); /*对src统计大小*/ System.out.println(dir.getLen() + "--->" + dir.getFileSize() + "--->" + dir.getDirSize()); //显示13个文件夹是因为包含了自身 /*实例化对象*/ DirCount dir2 = new DirCount("D:/workspace/practice/main/java/collection/map"); /*对src统计大小*/ System.out.println(dir2.getLen() + dir2.getFileSize() + "--->" + dir2.getDirSize()); //同样是包含了自身 } }
小结:
-
如何创建文件夹--->mkdir和mkdirs两种方法
-
统计下级File,使用listFile方法结合之前的递归方法可以实现
-
这篇关于5.6Java File对象使用递归打印子孙级目录以及文件的名称的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南