我正在开发一个必须能够在Java 5上运行并且需要一些文件扩展名过滤的应用程序。我知道Java 6中引入了FileNameExtensionFilter,但这对我不起作用,因为我需要一些适用于Java 5的东西。是否有其他方法或类可以实现这一点?
答案 0 :(得分:1)
FileFilter是这个班级的父母,根据您的需要实施它似乎非常简单:
public final class ByExtensionFileFilter
extends FileFilter
{
private final String description;
private final Set<String> extensions = new HashSet<String>();
public ByExtensionFileFilter(final String description,
final String first, final String... other)
{
this.description = description;
extensions.add('.' + first);
for (final String s: other)
extensions.add('.' + s);
}
@Override
public boolean accept(final File f)
{
final String name = f.getName();
for (final String extension: extensions)
if(name.endsWith(extension))
return true;
return false;
}
@Override
public String getDescription()
{
return description;
}
}
可以修复,例如,处理.jpg
等名称
答案 1 :(得分:0)
FilenameFilter和endsWith()方法的组合。
new File(".").list(new FilenameFilter(){
public void boolean accept(File dir, String name) {
return name.endsWith(".png");
}
});
这与FileNameExtensionFilter
几乎相同。