How to get all files with certain extension in a folder in java

本文介绍了一种使用Java程序在指定文件夹内查找所有具有特定扩展名(如.pdf或.jpg)文件的方法。通过实现FilenameFilter接口并覆盖accept方法,可以有效地筛选出所需文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:在这篇文章中,我们将看到如何在一个文件夹中列出具有特定扩展的所有文件。例如,您想要在一个文件夹中列出所有.jpg或.pdf文件。

我们将使用FilenameFilter接口来在一个文件夹中列出文件,因此我们将创建一个内部类,它将实现FilenameFilter接口并实施accept方法。我们需要将创建的内部类传递给java.io。文件的列表方法列出具有特定扩展的所有文件。

Java Program :

package cn.micai.io;

import java.io.File;
import java.io.FilenameFilter;

/**
 * 描述:How to get all files with certain extension in a folder in java
 * <p>
 *
 * @author: 赵新国
 * @date: 2018/6/7 11:36
 */
public class GetAllFilesWithCertainExtMain {

    public static void main(String [] args) {

        GetAllFilesWithCertainExtMain getAllFilesWithCertainExtMain = new GetAllFilesWithCertainExtMain();

        System.out.println("Finding .pdf files in the folder D://BaiduNetdiskDownload");
        System.out.println("-----------------");

        // Read the file
        File folder = new File("D://BaiduNetdiskDownload");
        getAllFilesWithCertainExtMain.getAllFilesWithCertainExtension(folder, "pdf");

        System.out.println("-----------------");
    }

    private void getAllFilesWithCertainExtension(File folder, String filterExt) {
        MyExtFilter extFilter = new MyExtFilter(filterExt);
        if (!folder.isDirectory()) {
            System.out.println("Not a folder");
        } else {
            // list out all the file name and filter by the extension
            String[] list = folder.list(extFilter);
            if (list.length == 0) {
                System.out.println("no files end with: " + filterExt);
                return;
            }
            for (int i=0; i<list.length; i++) {
                System.out.println("File: " + list[i]);
            }
        }
    }

    // inner class, generic extension filter
    public class MyExtFilter implements FilenameFilter {
        private String ext;
        public MyExtFilter(String ext) {
            this.ext = ext;
        }
        @Override
        public boolean accept(File dir, String name) {
            return (name.endsWith(ext));
        }
    }

}

当我运行程序时,我得到了以下输出:


我们已经在文件夹中找到了所有的。PDF文件"D://BaiduNetdiskDownload"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

迷彩的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值