基于Java实现查找指定目录路径下所有的指定后缀文件

package com.tyh.test.test01;

import java.io.File;

/**
 * 扫描指定盘下的指定文件
 */
public class Test02 {
    public static void main(String[] args) {
        String[] strings = {".jar"};
        searFiles("D:\\MyFile",strings);
    }
    public static void searFiles(String path,String[] type){
        File file = new File(path);
        if (file.isDirectory()){//目录
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++){
                //利用递归调用依次查找目录
                searFiles(files[i].getAbsolutePath(),type);
            }
        }else{//文件
            String absolutePath = file.getAbsolutePath();
            //方法一
//            //获取文件的后缀名
//            int index = absolutePath.lastIndexOf(".");
//            String str = absolutePath.substring(index);
//            //逐个匹配指定类型文件
//            for (int i = 0; i < type.length; i++){
//          
### Java 读取指定目录文件的方法 #### 使用 `File` 类遍历目录并获取文件列表 通过创建 `File` 对象可以轻松访问特定路径下的所有文件和子目录。对于给定的目录路径,可以通过调用 `listFiles()` 方法返回该目录中的文件数组。 ```java import java.io.File; public class DirectoryReader { public static void main(String[] args) { File directoryPath = new File("D:\\exampleFolder"); // 获取目录下的所有文件对象 File[] fileList = directoryPath.listFiles(); if (fileList != null && fileList.length > 0){ System.out.println("Directory contents:"); for (var file : fileList) { System.out.println(file.getName()); } } else { System.out.println("The specified path is empty or not a valid directory."); } } } ``` 此方法适用于简单场景,在不需要过滤的情况下能够有效地列出所有项目[^1]。 #### 利用 Apache Commons IO 库筛选特定类型的文件 当有更复杂需求时,比如只想要某些扩展名的文件,则可借助第三方库如Apache Commons IO简化开发工作量。这里展示了一个例子,它会递归地查找 `.java` 后缀的所有源码文件: ```java import org.apache.commons.io.FileUtils; import java.io.File; import java.util.Collection; public class SpecificFileTypeFinder { public static void main(String[] args) throws Exception{ File rootDir = new File("D://test"); // 查找 D:\test 下所有的 .java 文件,包括其子目录内的文件 Collection<File> files = FileUtils.listFiles(rootDir, new String[]{"java"}, true); for (File file : files) { System.out.println(file.getAbsolutePath()); } } } ``` 这段代码不仅限于`.java`文件,还可以修改字符串数组参数以适应其他格式的要求[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T何必当初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值