在项目中需要查找指定目录下特定后缀的文件,在jdk官网上查看资料时找到了FilenameFilter这个类,怎么用也写了,但是就是没给个例子,对有些人实在有些不方便,这也是写这篇文章的初衷,虽然简单但希望能帮到需要的小伙伴们
下面直接入正题,给出demo程序:
package net.csdn.johnhuster; import java.io.File; import java.io.FilenameFilter; public class FileNameFilterDemo { //内部类 public class FileFilter implements FilenameFilter { private String filterRule; public FileFilter(String filter) { this.filterRule = filter; }@Override public boolean accept(File dir, String name) { if(name.lastIndexOf('.')>0) { // get last index for '.' char int lastIndex = name.lastIndexOf('.'); // get extension String str = name.substring(lastIndex); // match path name extension if(str.equals(this.filterRule)) { return true; } } return false;
}
public static void main(String[] args)
{
File f = null;
File[] paths;
FileNameFilterDemo fileFilter = new FileNameFilterDemo();
try{
// create new file
f = new File("d:\\fileList");
// 文件文件名字过滤器
FilenameFilter fileNameFilter = fileFilter .new FileFilter(".txt") ;
// returns pathnames for files and directory
paths = f.listFiles(fileNameFilter);
// for each pathname in pathname array
for(File path:paths){
// prints file and directory paths
System.out.println(path);
}
}catch(Exception e)
{
// if any error occurs
e.printStackTrace();
}
}
}