/**过滤符合扩展名条件的文件*/ static File[] listHtmls(File file){ File[] fs = file.listFiles(new FileFilter() { @Override public boolean accept(File f) { return compareExtension(f); } }); File[] dirs = file.listFiles(new FileFilter() { @Override public boolean accept(File f) { return f.isDirectory(); } }); for(File dir:dirs){ File[] fs2 = listHtmls(dir); int len = fs.length; fs = Arrays.copyOf(fs, fs.length+fs2.length); System.arraycopy(fs2, 0, fs, len, fs2.length); } return fs; }
抽取出来通用的算法
static File[] listFiles(File dir,final String ex){ File[] fs = dir.listFiles(new FileFilter() { @Override public boolean accept(File f) { return f.getName().endsWith(ex); } }); File[] dirs = dir.listFiles(new FileFilter() { @Override public boolean accept(File f) { return f.isDirectory(); } }); for(File directory : dirs){ int len = fs.length; File[] ffs = listFiles(directory, ex); fs = Arrays.copyOf(fs, fs.length+ffs.length); System.arraycopy(ffs, 0, fs, len, ffs.length); } return fs; }