Java文件操作(遍历目录中的文件,找到并删除有指定关键字的文件)

这篇具有很好参考价值的文章主要介绍了Java文件操作(遍历目录中的文件,找到并删除有指定关键字的文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于通过java对文件继续读取和写入的操作推荐看读取文件和写入文件操作

题目

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

题目分析

        实际上题目就要求我们对一个指定的目录下的文件进行遍历,并找出文件名称中带有指定字符的普通文件,并询问用户是否需要删除该文件

代码展示

package 文件操作;

import java.io.File;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: wuyulin
 * Date: 2023-08-07
 * Time: 11:23
 */

//文件操作练习
//扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包括目录),并后续询问用户是否要删除该文件
public class Demo5 {
    private static Scanner scanner=new Scanner(System.in);
    public static void main(String[] args) {
        System.out.print("请输入要进行查找的根目录路径:");
        //将用户输入的根目录地址作为参数实例化一个File类型的对象
        File rootDir=new File(scanner.next());
        if(!rootDir.isDirectory()){
            System.out.println("输入的路径不是一个合法目录");
            return;
        }
        System.out.print("请输入要删除的文件的关键字:");
        String word=scanner.next();
        //开始遍历目录中的数据
        recurDir(rootDir,word);
    }

    //通过深度优先遍历去递归遍历完目录中的数据
    private static void recurDir(File rootDir,String word){
        //通过listFiles方法获得rootDir根目录下的所有文件
        File[] files=rootDir.listFiles();
        //当目录是非法的目录,或是空的目录就直接return
        if(files==null||files.length==0){
            return;
        }
        for(File f:files){
            //打印每一个遍历到的文件的路径,进行监视
            System.out.println(f.getAbsolutePath());
            //当前遍历到的这个文件是目录的话就要递归进入这个目录,去遍历该目录中的内容
            if(f.isDirectory()){
                recurDir(f,word);
            }else { //当前遍历到的文件是普通文件,就要判断是否含有关键词,是否需要删除
                deleteFile(f,word);
            }
        }
    }

    private static void deleteFile(File file,String word){
        if(!file.getName().contains(word)){
            return;
        }
        System.out.println("找到了"+file.getAbsolutePath()+"文件,是否需要删除(Y/N)");
        String choice=scanner.next();
        //choice是一个String类型的对象,所以choice是一个引用,指向String对象所在内存空间的地址
        //所以String类型的对象进行比较要使用equals
        if(choice.equals("y")||choice.equals("Y")){
            file.delete();
        }
    }
}

        1,首先对于指定目录下文件的遍历,采用的是深度优先遍历的思想,当我们遍历文件的时候要是遇到的是普通的文件,就判断名称是否含有指定字符,要是遇到目录,就要进行递归,进入目录中遍历该目录中的文件,继续进行相同的操作

        2.通过目录对象调用listFiles方法可以获得该目录下所有的文件,将其存入文件数组中,遍历文件数组中的每一个文件,当该文件是目录,那么就要进行递归,进入该目录中进行相同的操作,要是该文件是普通文件,就要进行判断,询问用户,删除等操作

        3.在deleteFile方法中,通过file.getName().contains(word)获得文件的名称并判断文件名称中是否含有指定字符word

        4.当判断用户输入的时候由于choice是String类型,是对象,所以choice只是一个引用(地址),所以不能直接用==来判断是否相等,要通过调用equals方法才能判断值是否相等。文章来源地址https://www.toymoban.com/news/detail-637646.html

到了这里,关于Java文件操作(遍历目录中的文件,找到并删除有指定关键字的文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux定时删除指定目录下文件

    1,例如删除root/tmp下的所有缓存文件,tmp 及下面的所有文件与文件夹都删除后,再重新建立tmp文件夹 /root/tmp 2,给文件赋予执行权限 3,添加Linux中的定时任务, 查看crontab 任务 https://www.cnblogs.com/mr-wuxiansheng/p/14433304.html?ivk_sa=1024320u

    2024年02月16日
    浏览(53)
  • shell脚本实现删除服务器指定目录下文件方法

    上述脚本中,find 命令用于查找指定目录下4天以前的文件,并将其删除。其中,-type f 表示只查找普通文件,不包括目录和符号链接等其他类型的文件;-mtime +3 表示查找修改时间早于3天前的文件;-delete 表示删除查找到的文件。 脚本中的 $folder_path 可以替换为实际的目录路径

    2023年04月19日
    浏览(63)
  • Linux :: 【基础指令篇 :: 文件及目录操作:(7)】:: cp:指定文件或目录的拷贝及指定拷贝到指定路径(与重命名)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. 基本语法及功能 2. 常用可选项说明 3. 文件基本拷贝操作 - - 3.1 指定文件拷贝到当前

    2024年02月03日
    浏览(73)
  • Linux :: 【基础指令篇 :: 文件及目录操作:(6)】:: rmidr / rm:删除空目录、删除非空目录及删除文件指令

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. rmdir / rm 基本语法及功能 2. rmdir 基本使用测试 (看操作代码) - - 2.1 创建一个空目录

    2024年02月05日
    浏览(47)
  • Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件

    code review! 这段代码是使用C++语言编写的,它执行了一系列命令来删除指定目录下的旧文件。让我逐行解释代码的功能: 首先,声明并初始化了一个名为 cmd 的 std::string 变量,用于存储要执行的命令。命令的内容是一个字符串,它由多个子命令以管道符( | )连接而成。 接下

    2024年02月04日
    浏览(43)
  • 【笔记】Java中for循环遍历删除操作

    在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用 迭代器iterator 完成 1. 推荐使用 迭代器方式****删除 阿里规约:【强制】不要在 foreach 循环里进行元素的

    2024年02月11日
    浏览(43)
  • MFC的文件操作——获取指定文件夹下面所有文件路径和删除指定文件夹下面所有文件

    目录 1.获取指定文件夹下面所有文件路径  2.删除指定文件夹下面所有文件 3.MFC的CString 字符串操作 4.MFC的 Int类型 与 Htuple类型数据之间转换  5.上述提及的函数应用 6.MFC与Halcon联合编程,获取halcon异常 7.MFC获取指定路径下的文件夹路径           ①、文件夹路径获取方式 ②

    2024年02月16日
    浏览(116)
  • 删除Github仓库中的指定的文件或文件夹

    在Github 仓库中是无法通过鼠标操作直接删除文件和文件夹的,那只能通过 git 命令来执行删除操作,当我们想删除 First 分支中的 folder 文件夹及其内部的文件  和 file.c 文件  时 1.当电脑存在对应的本地文件夹时,直接拉取远程信息,并更新至最新数据。  这时文件中的数据

    2024年02月08日
    浏览(58)
  • Ansible批量操作(上传文件、删除文件&指定文件内容、执行sh文件等)

    官方网站 https://www.ansible.com/ 一、Ansible 简介 1、Ansible是新出现的自动化运维工具,完全基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 2、Ansible是基于 paramiko 开发的,并且基于模块化工作,

    2024年04月16日
    浏览(52)
  • Linux :: 【基础指令篇 :: 文件及目录操作:(4)】:: mkdir :: 创建目录:指定路径单个目录创建及一次性创建多级目录

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. 基本语法及功能 2. 基本使用示例 - - 2.1 当前目录下创建指定新目录 - - 2.2 指定目录下

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包