2014-12-07 64 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