当前位置: 首页 > news >正文

【Java】扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问该用户是否要删除该文件

题目如下

扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问该用户是否要删除该文件

本题是关于文件I/O知识中对文件系统操作的应用,解答的完整代码如下(需要的uu自取)⬇️    

在完整代码后博主将对代码进行拆分讲解

import java.io.File;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//输入指定目录System.out.println("请输入指定目录");String path = scanner.next();File file = new File(path);if(!file.isDirectory()){System.out.println("输入目录不合法");System.exit(1);}//输入指定字符System.out.println("请输入指定字符");String key = scanner.next();//开始进行扫描scan(file,key);}//扫描函数public static void scan(File file,String key){System.out.println("正在扫描"+file.getAbsolutePath());if(file == null){return;} else if(file.isDirectory()){File[] files = file.listFiles();for (File f : files ) {scan(f,key);}}else {if(file.getName().contains(key)){delete(file);}}}//删除操作public static void delete(File file){System.out.println("是否要删除文件?(y|n)");Scanner scanner = new Scanner(System.in);String choice = scanner.next();if(choice.equals("y")){file.delete();}else {System.out.println("未删除文件");}}
}

1、主方法

main()方法代码中,首先要让用户输入指定的目录和指定关键字

值得注意的是,在输入指定目录后,我们要对用户的输入进行合法性判断

if(!file.isDirectory()){System.out.println("输入目录不合法");System.exit(1);
}

2、scan方法 

为了扫描文件夹及文件夹中的子文件夹, 我们需要采取递归思路。即如果子文件依然是文件夹,就仍用scan方法扫描;如果是文件,则判断文件名包不包含key关键字

如果文件名包含key关键字,那么就进入delete方法,判断是否要删除

public static void scan(File file,String key){System.out.println("正在扫描"+file.getAbsolutePath());if(file == null){return;} else if(file.isDirectory()){File[] files = file.listFiles();for (File f : files ) {scan(f,key);}}else {if(file.getName().contains(key)){delete(file);}}
}

运行结果

 

http://www.lryc.cn/news/249975.html

相关文章:

  • PyQt基础_008_ 按钮类控件QSpinbox
  • 3D点云目标检测:VoxelNex解读
  • opencv-利用DeepLabV3+模型进行图像分割去除输入图像的背景
  • 中国版的 GPTs:InsCode AI 生成应用
  • MySQL 学习笔记(刷题篇)
  • windows系统如何配置yarn环境变量
  • 视频中的文字水印怎么去除?这三招学会轻松去视频水印
  • Java项目学生管理系统二查询所有
  • 27.Spring如何避免在并发下获取不完整的Bean?
  • 浅析SD-WAN企业组网部署中简化网络运维的关键技术
  • 【Rust】快速教程——自定义类型、数字转枚举、Cargo运行
  • python 实现 AIGC 大语言模型中的概率论:生日相同问题的代码场景模拟
  • SD-WAN组网中的CPE及云服务CPE部署方法
  • 理解BatchNormalization层的作用
  • uniapp实现文件预览过程
  • 深度学习-学习笔记记录
  • 程序员养生之道:延寿不忘初心——延寿必备
  • 使用Docker安装部署Swagger Editor并远程访问编辑API文档
  • Nacos 2.X核心架构源码剖析
  • C语言--每日选择题--Day31
  • chrome vue devTools安装
  • Spring Security 6.x 系列(7)—— 源码分析之Builder设计模式
  • PyQt6 中自定义浮点型滑块类
  • 笔记,B+树
  • 代码随想录刷题题Day2
  • 【JAVA面向对象编程】--- 探索子类如何继承父类
  • 从浏览器控制台发送get,post请求
  • 海外问卷调查怎么批量做?可以用指纹浏览器吗?
  • HarmonyOS 位置服务开发指南
  • ThinkPHP6学生选课管理系统