io流(学习笔记02)采用递归方式寻找文件

devtools/2024/10/19 18:16:07/

方法递归(为了遍历一个文件夹内的所有文件夹,包括子文件夹内部的文件...)

递归是一种算法

形式上:方法调用自身的形式

递归的形式:

  1. 直接递归:方法自己调用自己。

  2. 间接递归:方法调用其他方法,其他方法又回调方法自己。

使用方法递归时需要注意: 递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出错误。

递归算法三要素:

  1. 递归的公式:f(n) = f( n- 1 ) * n;

  2. 递归的终结点:f(1);

  3. 递归的方向必须走向终结点;

    f(4) = f( 4- 1 ) * 4;

    f(3) = f( 3- 1 ) * 3;

    f(2) = f( 2- 1 ) * 2;

    f(1) =1;

文件搜寻

采用递归算法(直接回调)

//形式参数内的file是文件对象,name是想要寻找的文件名称。public static void searchFile(File file, String name) {
//如果文件为空||文件地址不存在||搜寻的文件名称不存在if (file == null || !file.exists() || name == null || name.isEmpty()) {return;}//获得该文件夹内的所有文件File[] files = file.listFiles();//判断文件算法为空if (files != null) {//遍历该文件夹内所有文件or文件夹for (File f : files) {//如果是文件并且文件名称包含搜寻的文件名称if (f.isFile() && f.getName().contains(name)) {System.out.println(f.getAbsolutePath());//如果f是文件夹则再次回调searchFile方法重复之前步骤} else if (f.isDirectory()) {searchFile(f, name);}}}}


http://www.ppmy.cn/devtools/117721.html

相关文章

Pandas 总结试卷

Pandas 总结试卷 # 导入pandas库 import pandas as pd# 0. 创建一个空的DataFrame df pd.DataFrame() df# 创建一个包含学生姓名、年龄、成绩的DataFrame # 数据表为:姓名 年龄 成绩 张三 18 85 李四 19 90 王五 20 78 赵六 21 92 data {姓名: [张三, 李四, 王五…

Python办公自动化案例:将Excel数据批量保存到Word表格中

案例:将excel数据批量保存到Word表格中 要将Excel数据批量保存到Word表格中,可以使用Python的openpyxl库来读取Excel文件,以及python-docx库来创建和编辑Word文档。以下是一段示例代码,以及代码解释和一些注意事项。 准备好的Excel数据: 1.安装所需库 首先,确保你已经…

JAVA集成Jasypt进行加密、解密(SpringBoot)

JAVA (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程 在开发过程中,我们经常需要处理敏感数据,如数据库密码、API 密钥等。为了确保这些数据的安全性,我们可以使用加密技术来保护它们不被泄露。Jasypt(Java Simplified Enc…

【C高级】有关shell脚本的一些练习

目录 1、写一个shell脚本,将以下内容放到脚本中: 2、写一个脚本,包含以下内容: 1、写一个shell脚本,将以下内容放到脚本中: 1、在家目录下创建目录文件,dir 2、dir下创建dir1和dir2 …

使用PyTorch检测和验证多GPU环境的Python脚本

使用PyTorch检测和验证多GPU环境的Python脚本 在深度学习和机器学习中,GPU的计算能力对模型训练和推理的速度有着极大的影响。随着多GPU系统的普及,如何确保多GPU能被正确识别并使用,是一个非常关键的问题。本文将为大家介绍一段简洁的Pytho…

c++9月26日

1.什么是虚函数,什么是纯虚函数 >虚函数:在父类的成员函数前加virtual关键字,在子类中重写该函数,这个函数就是虚函数 注意:如果子类没有对这个虚函数重写,在调用时会调用父类的函数实现 >纯虚函数:在父类成员函数前加virtual关键字(该函数不需要实现具体功能),在函数声明…

微信小程序拨打电话点取消报错“errMsg“:“makePhoneCall:fail cancel“

问题:微信小程序中拨打电话点取消,控制台报错"errMsg":"makePhoneCall:fail cancel" 解决方法:在后面加上catch就可以解决这个报错 wx.makePhoneCall({phoneNumber: 181********}).catch((e) > {console.log(e) //用…

HTML中的列表、表格、媒体元素和内联框架

HTML中的列表、表格、媒体元素和内联框架 本章目标 会使用有序列表、无序列表和定义列表实现数据展示(重点)会使用表格实现数据会使用媒体元素在网页中播放视频(重点)会使用html5结构元素进行网页布局(重点&#xff…