java获取指定目录下所有指定扩展名的文件
内容比较简单,关键是文件过滤器的使用和简单的递归思想
import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter;
public class file_list { public static void list(String name) { try { File f = new File(name); if (!f.exists()) { System.out.println("文件不存在哦"); return; }
if (f.isDirectory()) {
File[] list = f.listFiles(getFileExtensionFilter(".txt")); for (int i = 0; i < list.length; i++) System.out.println(list[i].toString()); list = f.listFiles(getNotDirFileFilter()); for (int i = 0; i < list.length; i++) if (list[i].isDirectory()) list(list[i].toString()); }
} catch (Exception e) { System.out.println("IO error!/r/n" + e.toString()); }
}
public static void main(String[] args) { list("c://windows"); }
public static FilenameFilter getFileExtensionFilter(String extension) {// 指定扩展名过滤 final String _extension = extension; return new FilenameFilter() { public boolean accept(File file, String name) { boolean ret = name.endsWith(_extension); return ret; } }; }
public static FileFilter getNotDirFileFilter() { // 文件还是目录过滤
return new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();//关键判断点
}
};
}
}
