2011-11-22 4 views
7

特定の拡張子(たとえば、.txt)を持つディレクトリ内のすべてのファイルを取得する必要があります。私は '.txt'と '.TXT'拡張子を持つすべてのファイルをリストすることができます(つまり、大文字と小文字を区別しないでください)。私はこれのために次のクラスを書いた。これを達成するために私は次のクラスでどのような変更を行う必要がありますか?Java FilenameFilter

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = "." + ext; 
    } 

    public boolean accept(File dir, String name) { 
     return name.endsWith(ext); 
    } 
} 

まあ、私はaccept()name.toLowerCase().endsWith(ext);を試してみましたが、それは動作しませんでした。

ありがとうございます。

答えて

14

拡張子も小文字にする必要があります。

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = ("." + ext).toLowerCase(); 
    } 

    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(ext); 
    } 
} 

また、コンストラクタをチェックして、先行する「?」があるかどうかを確認することをお勧めします。もしそうなら、別のものを前に付けないでください。

関連する問題