/**
* @Description <文件>过滤器
* @Team: 技术1部Java开发小组
* @Author Andy-ZhichengYuan
* @Date 2014年12月12日
* @Version V1.0 */
public class FileFilter implements FilenameFilter {
private String start; //名称开始的字符
private String midd; //名称中包含字符
private String ext; //文件的后缀字符
/** 构造函数
* @param start: 名称开始的字符
* @param midd : 名称中包含字符
* @param ext : 文件的后缀字符
* <注意> 3个条件可以为null / "",则不考虑此过滤条件 </注意> */
public FileFilter(String start, String midd, String ext) {
this.start = start;
this.midd = midd;
if( !StringTools.isTrimNull(ext) ) {
if(StringUtils.startsWith(ext, ".")){
this.ext = ext;
}else{
this.ext = "." + ext;
}
}
}
public boolean accept(File dir, String name) {
return isAccord(dir, name);
}
/** 目录下的文件:是否合法 */
public boolean isAccord(File dir, String name){
boolean flag = false;
if(dir != null && dir.isDirectory()){
//dir.getAbsolutePath() + "\\" + name
String path = FileUtils.mergePath(dir.getAbsolutePath(), name);
File file = new File( path );
if( file.isFile() ){//Is file
flag = isAccord(name);
}
path = null;
file = null;
}
return flag;
}
/** 文件名称:是否合法 */
public boolean isAccord(String name){
boolean flag = false;
boolean isStart = true;
boolean isMidd = true;
boolean isEnd = true;
if(start != null && !"".equals(start))
isStart = StringUtils.startsWithIgnoreCase(name, start);
if(midd != null && !"".equals(midd))
isMidd = StringUtils.containsIgnoreCase(name, midd);
if(ext != null && ext.length() >= 2)
isEnd = StringUtils.endsWithIgnoreCase(name, ext);
flag = isStart && isMidd && isEnd;
return flag;
}
@Override
public String toString() {
return "["+ start +"<"+ midd +">"+ ext +"]";
}
//Getter-Setter
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getMidd() {
return midd;
}
public void setMidd(String midd) {
this.midd = midd;
}
public String getExt() {
return ext;
}
public void setExt(String ext) {
this.ext = ext;
}
}
FileFilter文件过滤
最新推荐文章于 2021-10-24 19:21:14 发布