IO流(二):File遍历文件的方法--File用递归方法找到对应exe文件并启动(案例)

目录

1、File遍历文件的方法

1.1 遍历当前目录下所有一级文件夹的名称,只能获取一级的

1.2 获取当前目录下所有一级文件夹,只能获取一级的

2、案例演示 -- 递归查找文件夹下的程序并执行


1、File遍历文件的方法

1.1 遍历当前目录下所有一级文件夹的名称,只能获取一级的

.list()方法,注意获取的只是文件名

public class FindFile {
    public static void main(String[] args) throws IOException {
        //File遍历文件夹的方法
        File file5 = new File("D:\\学习软件\\IoTest); //获取当前目录下所有一级文件夹的名称
        String[] list = file5.list();
        for (String fileName : list){
            System.out.println(fileName);
        }
        
    }
}

我们获取到的结果如下:

1.2 获取当前目录下所有一级文件夹,只能获取一级的

.listFiles()方法,获取的是文件对象

注意:隐藏的文件也能获取到,但是没有权限的文件是获取不到的

public class FindFile {
    public static void main(String[] args) throws IOException {
        //File遍历文件夹的方法
        File file5 = new File("D:\\学习软件\\IoTest"); //获取当前目录下所有一级文件夹的名称
        File[] list = file5.listFiles();
        for (File file : list){
            System.out.println(file);
        }

    }
}

此时我们获取到的就是文件File对象,可以对这个File对象删除或者获取名字获取修改时间等操作。

但是注意只能获取一级的,若要获取多级的文件对象,可以用递归算法进行获取。

file操作文件的时候,只能操作一级文件,所以当我们需要操作更深层级的文件时,就需要用到递归的方法,下面用一个小案例演示File用递归方法找到对应exe文件并启动。

不了解递归的同学可以先看一下我发布的递归算法文章,其实很简单的。321上链接: 

递归算法--概念解释、使用场景、经典例子代码演示-CSDN博客

下面也会涉及到一些File的基本操作,不了解的同学可以先去看我上一篇发布的关于IO流的文章:IO流(一),链接我放下面了:

IO流(一):什么是File、什么是IO流?File文件 对象的创建以及常用方法-CSDN博客

2、案例演示 -- 递归查找文件夹下的程序并执行

我们在D盘下有一个QQ.exe的执行文件,我们怎么通过代码找到它的位置并执行呢?

代码演示以及注释

public class FileQQAndOpen {

    public static void main(String[] args) throws IOException {
        FindQQ(new File("D://腾讯//"),"QQ.exe");

    }


    private static void FindQQ(File dir,String name) throws IOException {
        //先判断非法情况,文件不存在或者不是文件夹的情况直接排除
        if (!dir.exists() || dir.isFile() || dir == null){
            return;
        }

        //判断是否能获取到当前一级目录文件
        File[] files = dir.listFiles();
        if (files.length == 0 ||  files == null){
            return;
        }

        //遍历一级文件对象
        for (File f : files){
            //判断是文件还是文件夹,
            if (f.isFile()){
                //是文件就看看是不是我们要找的QQ.exe
                if (f.getName().contains(name)){
                    System.out.println("找到QQ的位置了:" + f.getAbsolutePath());
                    Runtime runtime = Runtime.getRuntime();
                    runtime.exec(f.getAbsolutePath());  //打开QQ.exe
                    return;
                }
            }else {
                //是文件夹就递归继续往下找
                FindQQ(f,name);
            }
        }
    }
}

可以看到我们代码帮我们找到了QQ程序路径并打开该程序

这就是我File遍历文件的理解,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值