02 File类的方法练习——遍历文件夹
思路
- 需要遍历的文件夹 File
 - 使用listFile列出下级文件及文件夹
 - 判断得到的list是否为空,为空则输出当前文件夹名称
 - 如果不为空,逐个判断是文件还是文件夹
 - 如果是文件,输出文件名
 - 如果是文件夹, 回到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步骤
}
}
}
}
演示


02 File类的方法练习——遍历文件夹的更多相关文章
- Java File类应用:递归遍历文件夹和递归删除文件
		
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在 若要删除正文文件夹,可以在递归 ...
 - java基础知识回顾之javaIO类--File类应用:递归深度遍历文件
		
代码如下: package com.lp.ecjtu.File.FileDeepList; import java.io.File; public class FileDeepList { /** * ...
 - Java IO流-File类的使用示例-创建文件夹和文件的正确方法
		
当创建一个文件时,比如:E:\\test\\test.txt,此时若文件夹test不存在,那么直接创建文件会出错,故首先要判断文件夹是否存在,不存在的话要首先创建文件夹. public class F ...
 - java File基本操作,以及递归遍历文件夹
		
java 的文件操作,相对来说是比较重要的,无论是编写CS还是BS程序,都避免不了要与文件打交道,例如读写配置文件等.虽然现在很多框架都直接帮你做好了这一步! java.io.File 底层是调用与c ...
 - C/C++遍历文件夹和文件
		
本方法可用于windows和linux双平台,采用C/C++标准库函数. 库函数 包含头文件 #include 用到数据结构_finddata_t,文件信息结构体的指针. struct _findda ...
 - File类创建删除功能的方法和File类遍历(文件夹)目录功能
		
File类创建删除功能的方法 -public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件 -public boolean delete(): ...
 - java中File类应用:遍历文件夹下所有文件
		
练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...
 - linux c遍历文件夹 和文件查找的方法
		
linux c遍历文件夹的方法比较简单,使用c来实现 #include <iostream> #include <stdio.h> #include <sys/types ...
 - 雷林鹏分享:Ruby File 类和方法
		
Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...
 
随机推荐
- 使用 concurrently 并行地运行多个命令(同时跑前端和后端的服务)
			
我现在有一个项目是这样的,前端是用 React 写的,后端是用 Nodejs,目录结构如下: . ├── README.md ├── backend ├── node_modules ├── pack ...
 - lnmp一键安装包 多PHP版本使用教程
			
./install.sh mphp 多PHP版本只支持LNMP模式,LNMPA.LAMP模式下不支持!要使用多PHP先安装多PHP版本,在lnmp1.4源码目录下运行:./install.sh mph ...
 - git 删除文件 、只删除远程仓库文件、更换远程仓库
			
一.删除文件 1.克隆远程仓库到本地库. 例如使用ssh方法: git clone git@github.com:xxx/xxx.git 2.对需要删除的文件.文件夹进行如下操作: git rm te ...
 - Rare-Variant Association Analysis | 罕见变异的关联分析
			
Rare-Variant Association Analysis: Study Designs and Statistical Tests 10 Years of GWAS Discovery: B ...
 - Navicat Premium连接MySQL 1251错误
			
Navicat Premium连接MySQL 1251错误 MySQL Installer 8.0.17  出现上述错误的原因是版本MySQL 8.0.17即8.0开始的MySQL版本,因为采用新的 ...
 - Java基础 println print 实现输出换行
			
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
 - 从0开始学爬虫2之json的介绍和使用
			
从0开始学爬虫2之json的介绍和使用 Json 一种轻量级的数据交换格式,通用,跨平台 键值对的集合,值的有序列表 类似于python中的dict Json中的键值如果是字符串一定要用双引号 jso ...
 - Ajax serialize()提交form表单不能上传file类型
			
前台form表单的提交方式有很多种,例如: 1. form表单submit直接提交的方法 2. Ajax提交的方法 3. jquery提交的方法 4. 原生js提交的方法 每一种方法都有它的优势和不足 ...
 - 【Mac】解决macos安装升级时报错安装所选更新时发生错误的问题
			
1 系统更新macjave 更新一直失败: 2 解决方法为:重新启动Mac,并按住Command+R进入恢复模式,找到Terminal后输入csrutil disable,然后重启Mac,再次下载并 ...
 - Django models中的\_\_repr__方法
			
先看个例子: class D(object): def __init__(self): pass def __str__(self): return "__str__" def _ ...