2016-04-05 3 views
-7

У меня есть одна папка, которая содержит список файлов. Я хочу найти файлы.Java: Wild card Поиск файлов в папке

например. 1. TBC_DICV_11943_IGAXMLService__V1.0

поиск ключевых слов TBC * IGAXML * 1 *, * 1,0, IGAXMLService и т.д.

EXEC_DICV_SERVICE_TEST

поиск ключевых слов DICV * Тест Пожалуйста, вы можете помочь искать?

+6

Это хорошо. у вас возник вопрос? – Reimeus

+1

Почему бы вам не попробовать что-то по своему усмотрению? –

+0

Почему вы не можете попробовать 'String.contains()' ?? – Sibidharan

ответ

0
String serachkeyword; 
FileFilter fileFilter = new WildcardFileFilter(serachkeyword); 
File[] files = new File(path).listFiles(fileFilter); 
List<File> list = new ArrayList<File>(Arrays.asList(files)); 

serachkeyword являются TBC * IGAXML * 1 *, * 1,0, IGAXMLService и т. Д.

Его работая отлично.

Спасибо, что ответили на мой вопрос.

1

Вы могли бы попробовать, как этот `

List<String>arrlist=new ArrayList<String>(); 
    arrlist.add("what ever u wants");// add more 
     for(int i=0;i<arrlist.size();i++) 
    { 
    if(arrlist.get(i).equals(" TBC_DICV_11943_IGAXMLService__V1.0")); 
    { 
    System.out.println("match found do your stuff here"); 
    } 
    } 
+0

Если вы можете сделать это с помощью 'equals', нет смысла делать это так: более эффективно использовать' ArrayList.contains'. Я думаю, что вопрос заключается в том, что OP хочет выполнить поиск по шаблону. (Также используйте итератор или расширенный цикл for). –

+0

Пожалуйста, удалите этот ответ. Этот ответ не связан с моим вопросом. –

1

Вот путь с потоком и Pattern:

 List<String> list = new ArrayList<>(); 
     list.add("foo"); 
     list.add("TBC_DICV_11943_IGAXMLService__V1.0"); 
     list.add("bar"); 
     Pattern pattern = Pattern.compile("TBC.*IGAXML.*1.*"); 
     list.stream().filter(value -> pattern.matcher(value).find()).forEach(System.out::println); 
+0

Может быть или не быть n число * –

+0

Этот подход достаточно гибкий, чтобы иметь возможность использовать любое регулярное выражение, которое вы хотите, просто изменить шаблон шаблона = Pattern.compile (); –