zoukankan      html  css  js  c++  java
  • 02 File类的方法练习——遍历文件夹

    思路

    1. 需要遍历的文件夹 File
    2. 使用listFile列出下级文件及文件夹
    3. 判断得到的list是否为空,为空则输出当前文件夹名称
    4. 如果不为空,逐个判断是文件还是文件夹
    5. 如果是文件,输出文件名
    6. 如果是文件夹, 回到2步骤

    从第2到第6封装成方法,使用递归的思想遍历。

    代码

    import java.io.File;
    public class ListFile
    {	
    	static int COUNT = -1;//文件序号,由于首次传入文件夹也会导致COUNT加1
    	static int SPACE = 0;//文件夹大小
    	public static void main(String[] args){
    		//1.需要遍历的文件夹 File
    		//2.使用listFiles列出下级文件及文件夹
    		//3.判断得到的list是否为空,为空则输出当前文件夹名称
    		//4.如果不为空,逐个判断是文件还是文件夹
    		//5.如果是文件,输出文件名
    		//6.如果是文件夹, 回到2步骤
    
    		//1.需要遍历的文件夹
    		File directory = new File("D:\遍历测试文件夹");
    		//调用遍历方法
    		bianLi(directory);
    		System.out.println("文件夹""+directory.getAbsolutePath()
    			+""已遍历完成!文件夹大小为:"+SPACE+"B,包含了文件及文件夹共"+COUNT-1+"个!");
    		
    
    	}
    
    	//遍历方法
    	public static void bianLi(File directory){
    		COUNT++;
    		System.out.println(COUNT+":"+directory.getAbsolutePath()+"  非空文件夹");
    		//2.列出下级文件及目录
    		File[] fileList = directory.listFiles();
    		//3.判断得到的list是否为空,为空则输出当前文件夹名称
    		if(fileList.length == 0){
    			COUNT++;
    			System.out.println(COUNT+":"+directory.getAbsolutePath()+"  空文件夹");
    			return;
    		}
    		//4.如果不为空,逐个判断是文件还是文件夹
    		for(File file : fileList){
    			//5.如果是文件,输出文件名
    			if(file.isFile()){
    				COUNT++;
    				SPACE += file.length();
    				System.err.println(COUNT+":"+file.getAbsolutePath()+"  文件");
    			}else{//6.1 如果是文件夹 
    				bianLi(file);//6.2 回到2步骤
    			}
    		}
    	}
    }
    

      

    演示

  • 相关阅读:
    linux常用命令的英文单词缩写
    Servlet Struts2 SpringMVC 获取参数与导出数据 方法比较
    Spring 整合Mybatis Mapper动态代理方法
    Spring 整合Mybatis dao原始方法
    Mybatis Mapper动态代理方式 typeAliases 别名的使用
    MySQL 高性能优化实战总结
    Chrome 浏览器最牛插件之一 Vimium
    Spring Cloud-微服务架构集大成者
    单点登录原理与简单实现
    Spring-WebSocket 教程
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/11906483.html
Copyright © 2011-2022 走看看