您的位置:首页 > 其它

一个没有经过优化的过滤指定目录下的指定扩展名文件的算法

2014-04-09 13:46 393 查看
/**过滤符合扩展名条件的文件*/
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;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐