15、java使用FileNmeFilter列出指定扩展文件

package com.tij.io.file;

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

/**
 * 使用FileNmeFilter列出指定扩展文件
 * @author guoyoujun
 * @date 2014-3-17
 */
public class FileNameFilterExample {

	/**
	 * java.io.FilenameFilter是一个接口,其中有方法accept(File dir, String fileNme)返回一个boolean 值,然后可以使用
	 * <p>File类的listFiles()可以过滤出指定的文件
	 * @param args
	 */
	public static void main(String[] args) {
		String dir = "/Users/GYJ/funshion";
        String ext = ".txt";
        findFiles(dir, ext);
	}
	
	/**
	 * 查找指定目录指定扩展名的文件
	 * @param dir
	 * @param ext
	 */
	private static void findFiles(String dir, String ext) {
		File file = new File(dir);
		if (!file.exists()) {
			System.out.println(dir + "Directory doesn't exists");
		} else {
			File[] listFiles = file.listFiles(new MyFileNameFilter(ext));
			if (listFiles.length == 0) {
				System.out.println(dir + "没有任何拓展名为" + ext + "的文件");
			} else {
				for (File f : listFiles) {
					System.out.println("文件:" + dir + "/" + f.getName());
				}
			}
		}
	}
	
	//FilenameFilter实现类
	public static class MyFileNameFilter implements FilenameFilter{
		private String ext;
		public MyFileNameFilter(String ext) {
			this.ext = ext;
		}
		@Override
		public boolean accept(File dir, String name) {
			return name.toLowerCase().endsWith(ext);
		}
	}
}

out put============
文件:/Users/GYJ/funshion/bbinfo.txt
文件:/Users/GYJ/funshion/platFormGuid.txt

你可能感兴趣的:(java)