ディレクトリ内の特定の拡張子を持つファイルのリストを取得したいと考えています。API (Java 6) には、File.listFiles(FileFilter)
これを行うメソッドがあります。
特定の拡張子が必要なので、FileNameExtensionFilter
. ただし、これを使用するとコンパイルエラーが発生しますlistFiles
。以来FileNameExtensionFilter implements FileFilter
、私はこれを行うことができるはずだと思いました。コードは次のとおりです。
FileNameExtensionFilter filter = new FileNameExtensionFilter("text only","txt");
String dir = "/users/blah/dirname";
File f[] = (new File(dir)).listFiles(filter);
最後の行は、コンパイル エラーを示しています。
タイプ File のメソッド listFiles(FileNameFilter) は、タイプ FileNameExtensionFilter の引数には適用されません
listFiles(FileFilter)
ではなく、を使用しようとしていlistFiles(FileNameFilter)
ます。コンパイラがこれを認識しないのはなぜですか?
これは、拡張フィルターを拡張する独自の拡張フィルターを作成した場合に機能しますFileFilter
。FileNameExtensionFilter
自分で書くより使いたい。私は何を間違っていますか?