java practice io 子文件遍历(递归思想的运用)

在这之前 有一道练习题是要求找出当前文件夹遍历之后的最大字节文件和最小字节文件 其实有相应的length();的方法 直接可以利用找最大数和最小数的算法

重点算法——子文件遍历:
代码示例:

package le;
import java.io.File;
public class Files{
	
	 public static void findAll(File file){
	        //判断文件是否存在
	        if (!file.exists()) {
	            System.out.println("文件不存在!");
	        }
	        //如果是文件,直接打印地址+文件名
	        if (file.isFile()){
	            System.out.println(file.getPath() +" "+ file.getName());
	        }else {
	            //如果不是文件,则取路径,通过路径获取文件,遍历文件
	            File[] files =file.listFiles();
	            if (files != null) {
	                for (File f: files){
	                    if (f == null){
	                        break;
	                    }else {
	                        findAll(f);
	                    }
	                }
	            }
	        }
	    }
	    public static void main(String[] args) {
	       
	        File file = new File("C:\\Windows");
	        findAll(file);
	    }
}

细节:
File[] files =file.listFiles(); 这个语法只是在实例化file时 遍历这个文件夹下的文件或文件夹 因为一个文件夹打开可能还有文件夹(就像俄罗斯套娃一样)
那么如何达到遍历到没有文件夹只剩文件呢?
就利用 File[] files =file.listFiles();这个语法一个个不断打开
计算机最喜欢做的事就是穷举 如何到达, 这里就需要递归函数的思想 不断的自身调用进行遍历。一个个打开文件夹来查询

为了保证遍历打开的是文件夹而不是文件
特此运用了if else语句进行判定
if (file.isFile()) 判定文件或者if(file.isDirectory())判定文件夹。
以及if.exists() 文件是否存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值