2015-12-03 3 views
-1

Имя файла функция фильтраКак вернуть массив из FilenameFilter в Java

Filterfilter = new FilenameFilter() { 
public boolean accept(File dir, String name) { 
return name.equals(""+abc.get(i)); 
} 
}; 

У меня есть папка с более чем 1000 BMP-файлов, и если я хочу, чтобы вернуть массив через FilenameFilter то, как это возможно ??

+2

что именно ваша проблема? возвращение имен? вы можете вернуть массив, вектор, список, ... 1000 не так велик. –

+1

Мой prb предположим, что я havinf arraylist abc ["one.bmp", "two.bmp", "three.bmp"], тогда я хочу искать эти три имени в папке и переименовать его – bjk

+0

@bjk Я думаю, что вы не хотите возвращать массив, но используйте массив в качестве аргумента для поиска файлов, или я прав? – eis

ответ

0

Да, это возможно

FilenameFilter filenameFilter = new FilenameFilter() { 

     @Override 
     public boolean accept(File dir, String filename) { 
      if (filename.endsWith(".abc")) { 
       return true; 
      } 

      return false; 
     } 
    }; 
    File dir = new File("Your folder path"); 

    File[] filterFiles = dir.listFiles(filenameFilter); 
+0

Это не конец с abc его окончание с bmp, и моя папка имеет только все файлы bmp – bjk

+0

просто замените abc своим расширением bmp – ResolutioN

+0

Я думаю, что ур не понимает ... моя папка состоит из всех файлов BMP и поэтому этот фильтр не имеет используйте – bjk

-1

Попробуйте сделать это. Он вернет все BMP-файлы.

import java.io.*; 
import java.util.Date; 
class Test{ 
    public static void main(String[] args){ 
     File f = new File(args[0]); 
     if(f.isDirectory()){ 
      File name[] = f.listFiles(new FilenameFilter() 
       { 
        public boolean accept(File path, String name) 
         { 
          File f1 = new File(path,name); 
          return name.endsWith(".bmp"); 
         } 
       }); 
      for(File n : name) 
       System.out.println(n.getName()); 
     } 
    } 
}