-1

Java 5 で実行できる必要があり、ファイル名拡張子のフィルタリングが必要なアプリに取り組んでいます。Java 6 で導入された FileNameExtensionFilter があることは知っていますが、Java 5 で機能するものが必要なので、それは機能しません。これを可能にする代替メソッドまたはクラスはありますか?

4

2 に答える 2

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

于 2013-05-30T22:37:17.670 に答える
0

FilenameFilterendWith()メソッドの組み合わせ。

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

これは、 とほとんど同じことができますFileNameExtensionFilter

于 2013-05-30T22:30:26.627 に答える