2014-12-07 2 views
1

Возможно, у кого-то есть идея, почему этот код не работает.FileFilter не работает

метод listFiles (FilenameFilter) в тип файла не применяется для аргументов (FileFilter)

Я только что прочитал, что эта ошибка встречается, в основном, если «javax.swing.filechooser.FileFilter» не используется. Но я использую его, и поэтому я не могу объяснить, почему это не сработало.

import java.io.File; 
import javax.swing.filechooser.FileFilter; 
import javax.swing.filechooser.FileNameExtensionFilter; 

public class Test { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     File ordner = new File("C:/eclipse/"); 
     listDir(ordner); 
    } 

    public static void listDir(File dir) {  

     final String[] pics = {"gif","png"}; 

     FileFilter picsFilefilter = new FileFilter() { 
      private final FileNameExtensionFilter filter = 
       new FileNameExtensionFilter("Only pics", pics); 
      public boolean accept(File file) { 
       return filter.accept(file); 
      } 
      public String getDescription() { 
       return null; 
      } 

     }; 

     File[] files = dir.listFiles(picsFilefilter); //here the error occures 

     if (files != null) { 
      for (int i = 0; i < files.length; i++) { 

        if (files[i].isDirectory()) { 
         System.out.println("(Ordner) "); 
         listDir(files[i]); // ruft sich selbst mit dem 
          // Unterverzeichnis als Parameter auf 
         } 
        else { 
         System.out.println("(Datei) "); 
        } 
        System.out.println(files[i].getName()+"\n"); 

      } 
     } 
    } 

} 

ответ

5
import javax.swing.filechooser.FileFilter; 

Это неправильный FileFilter класс. Вы хотите

import java.io.FileFilter; 

вместо этого.

+0

Спасибо, стыдно за меня, я был уверен, что где-то я где-то читал, что было бы наоборот. -.- – Tim

Смежные вопросы