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();//关键判断点

}

};

}

}

经验分享 程序员 微信小程序 职场和发展