2014-12-07 58 views
1

也许有人有一个想法,为什么这段代码不起作用。FileFilter不起作用

在类型文件的方法listFiles(的FilenameFilter)不适用于参数(的FileFilter)

我刚才读,这个错误occures大多是如果 “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 2014-12-07 17:24:39