FileNameExtensionFilter替代?

时间:2013-05-30 22:23:11

标签: java file file-extension

我正在开发一个必须能够在Java 5上运行并且需要一些文件扩展名过滤的应用程序。我知道Java 6中引入了FileNameExtensionFilter,但这对我不起作用,因为我需要一些适用于Java 5的东西。是否有其他方法或类可以实现这一点?

2 个答案:

答案 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)

FilenameFilterendsWith()方法的组合。

new File(".").list(new FilenameFilter(){
  public void boolean accept(File dir, String name) {
     return name.endsWith(".png");
  }
});

这与FileNameExtensionFilter几乎相同。