2016-04-05 7 views
-7

Ich habe einen Ordner, der Liste der Datei enthalten. Ich möchte Dateien durchsuchen.Java: Wildcard Dateisuche in Ordner

z. 1. TBC_DICV_11943_IGAXMLService__V1.0

Suche Stichworte sind TBC * IGAXML * 1 *, * 1.0, IGAXMLService etc

EXEC_DICV_SERVICE_TEST

durchsuchen Schlüsselwörter DICV werden * Test Bitte können Sie helfen Suche ?

+6

Das ist nett. Hast du eine Frage? – Reimeus

+1

Warum versuchst du nicht selbst etwas? –

+0

Warum können Sie nicht versuchen, String.contains() '?? – Sibidharan

Antwort

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 sind * IGAXML * 1 *, * 1.0, IGAXMLService usw.

Es funktioniert gut.

Vielen Dank für die Beantwortung meiner Frage.

1

könnten Sie versuchen, wie diese `

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

Wenn Sie es mit 'equals' machen können, hat es keinen Sinn, es so zu machen - es ist effizienter, einfach' ArrayList.contains' zu verwenden. Ich denke, der Punkt der Frage ist, dass OP eine Wildcard-Suche machen möchte. (Verwenden Sie auch einen Iterator oder eine erweiterte for-Schleife). –

+0

Bitte löschen Sie diese Antwort. Diese Antwort bezieht sich nicht auf meine Frage. –

1

Hier ist ein Weg, um mit einem Stream und einem Muster:

 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

Es kann sein oder nicht sein n Anzahl von * –

+0

Dieser Ansatz ist flexibel genug, um in der Lage zu sein, jede gewünschte regexp einfach zu verwenden Pattern pattern = Pattern.compile (); –