递归搜索文件 - 方式1

递归检索指定的文件

思路

1. 拿到目录及文件名
2. 到目录下开始遍历寻找,在开始之前需要做判空操作 预防空指针

3. 如果在外层循环中没有找到对应的文件 则继续到下一层循环中寻找 - 递归调用

4. 找到后可以选择直接结束循环 或等待全部检索完毕 程序自动推出

import java.io.File;
import java.io.IOException;

public class SearchFile {

    public static void main(String[] args) {
        searchFile(new File("D:\\ETJAVA"),"SlackSetup.exe");


    }

    /**
     * 去某个目录下查询指定的文件
     * @param target
     * @param fileName
     */
    static void searchFile(File target, String fileName){
        // 1. 判断该目录是否为空 是否是目录
        if(target.exists() && target.isDirectory()){
            // 2. 提取当前目录下的全部一级文件
            File[] files = target.listFiles();
            // 3. 判断是否存在一级文件对象(判断目录是否不为空)
            if(files!=null && files.length>0){
                // 4. 变量一级文件对象
                for (File file : files) {
                    // 5. 判断一级文件对象是文件还是目录
                    if(file.isFile()){
                        // 6. 判断是否是当前要寻找的文件
                        if(file.getName().contains(fileName)){
                            System.out.println(file.getAbsolutePath());
                            // 启动该文件
                            //Runtime r = Runtime.getRuntime();
                            try {
                                //r.exec(file.getAbsolutePath());
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                            System.exit(0);

                        }
                    }else{
                        // 7. 继续进入目录寻找
                        searchFile(file,fileName);
                    }
                }
            }
        }else {
            System.out.println("---------------------");
        }

    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值