FilenameFilter总结

一、FilenameFilter介绍

Java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件;

二、文件名过滤器一般用法


1.实现FilenameFilter接口;

2.实现boolean accept(File dir,String name);   //dir表示文件的当前目录,name表示文件名;

class MyFilter implements FilenameFilter{

private String type;            //type为需要过滤的条件,比如如果type=".jpg",则只能返回后缀为jpg的文件

public MyFilter(String type){

this.type = type;

}

public boolean accept(File dir,String name){           //返回true的文件则合格

}

}

三、实例    


要求:返回当前目录下所有以.java结尾的文件;

package tq.io;

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

/**
 * 操作目录
 * mkdir() 创建目录,必须确保父目录存在,如果不存在,创建失败
 * mkdirs()  创建目录,如果父目录不存在,一同创建
 * list()  文件|目录名字符串形式
 * @author beibei
 *
 */
public class IoFile2 {
	public static void main(String[] args) {
		test2();
	}
	
	//子目录|文件名  &&  File对象
	public static void test2(){
		String path = "C:/mywork/allFile";
		File src = new File(path);//文件夹
		if(src.isDirectory()){    //存在并且为目录
			//子目录|文件名
			String[] subNames = src.list();
			for(String subName:subNames){  
				//System.out.println(subName);
			}
			//File对象
			File[] subFiles = src.listFiles();
			for(File subFile:subFiles){    
				//System.out.println(subFile.getAbsolutePath());
			}
			//命令设计模式
			subFiles = src.listFiles(new FilenameFilter() {
				//dir代表src
				public boolean accept(File dir, String name) {
					//System.out.println(dir.getName());
					//System.out.println(dir.getAbsolutePath());
					return new File(dir,name).isFile()&&name.endsWith(".java");
				}
			});
			for(File subFile:subFiles){    
				System.out.println(subFile.getAbsolutePath());
			}
		}
	}
	
	public static void test1(){
		String path = "C:/mywork/allFile/2.jpg";
		File src = new File(path);
		src.mkdir();    //创建目录,必须确保父目录存在,如果不存在,创建失败
		src.mkdirs();   //创建目录,如果父目录不存在,一同创建
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值