python文件路径过滤器_FilenameFilter文件名过滤器——列出指定类型文件实现

Java的IO操作中File有列出指定目录的文件的方法。如果要列出指定类型的文件,需使用FilenameFilter对象。

FilenameFilter是一个接口,所以需要写一个实现类来实现该接口。我希望实现了该接口的类,可以过滤多种文件类型。代码示例如下:/* * @(#)Mp3FileNameFilter.java version: 0.1 * Date:2020年12月15日 * * Copyright (c) 2011 CFuture09, Institute of Software, * Guangdong Ocean University, Zhanjiang, GuangDong, China. * All rights reserved. * * This software is the confidential and proprietary information of * the CFuture. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with CFuture. */package cfuture09.utils;import java.io.File;import java.io.FilenameFilter;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Mp3FileNameFilter implements FilenameFilter {List types;/** * 构造一个Mp3FileNameFilter对象,其指定文件类型为空。 */protected Mp3FileNameFilter() {types = new ArrayList();}/** * 构造一个Mp3FileNameFilter对象,具有指定的文件类型。 * @param types */protected Mp3FileNameFilter(List types) {super();this.types = types;}@Overridepublic boolean accept(File dir, String filename) {// TODO Auto-generated method stubfor (Iterator iterator = types.iterator(); iterator.hasNext();) {String type = (String) iterator.next();if (filename.endsWith(type)) {return true;}}return false;}/** * 添加指定类型的文件。 * * @param type 将添加的文件类型,如".mp3"。 */public void addType(String type) {types.add(type);}}

在以上代码中,我为FilenameFilter对象添加了一个成员变量types,以接收指定类型。方法addType(String type)是为过滤器添加需要过滤的文件类型,其内容为文件的后缀名,如".mp3"。

public boolean accept(File dir, String filename)是实现FilenameFilter接口时要重写的方法,用循环迭代判断文件名的后缀名是否为types中的类型,是则返回true。当types中没有该文件的后缀名时,返回false。

构造方法写了两个,一个是不带参数的,此时自己创建一个ArrayList对象,用以储存文件类型。另一个是带List对象参数的,该对象由用户创建。

使用时代码如下:File file = new File(path);Mp3FileNameFilter filenameFilter = new Mp3FileNameFilter();filenameFilter.addType(".mp3");filenameFilter.addType(".wmv");File[] files = file.listFiles(filenameFilter);for (int i = 0; i < files.length; i++) {System.out.println(mp3Info);}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值