Android开发之——FilenameFilter文件过滤器

本文介绍了Android开发中如何使用FilenameFilter进行文件过滤,重点讲解了其基本用法和创建自定义过滤器的步骤,以实例展示了如何筛选出以.mp3结尾的文件。

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

    

一、FilenameFilter介绍


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

一般地:

(1)String[] fs = f.list();

(2)File[] fs = f.listFiles();

这两个方法返回f下的所有文件或目录;

FilenameFilter用来把符合要求的文件或目录返回;

因此可以调用:

(1)String []fs = f.list(FilenameFilter filter);;

(2)File[]fs = f.listFiles(FilenameFilter filter);


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


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的文件则合格

}

}


三、实例    


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

//过滤所有以.mp3结尾的文件
class MusicFilter implements FilenameFilter {
	
	public boolean accept(File dir, String name) {
		return (name.endsWith(".mp3"));
	}

然后显示在某个列表内:

//显示音乐文件列表
	public void musicList() {
		
		//取得需要遍历的文件目录
		File home = new File("/sdcard/");
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();

		//遍历文件目录
		if (home.listFiles(new MusicFilter()).length > 0) {

			for (File file : home.listFiles(new MusicFilter())) {
				Map<String, String> map = new HashMap<String, String>();
				System.out.println("musicName is: " + file.getName());
				map.put("musicName", file.getName());
				list.add(map);
			}
			sa = new SimpleAdapter(SetAlarm.this, list, R.layout.musicitems,
					new String[] { "musicName" }, new int[] { R.id.musicName });
			listV.setAdapter(sa);
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值