2016-03-29 2 views
1

Ich habe ein Szenario, in dem 5600 Dateien vorhanden sind. Ich bin in der Lage, die Dateinamen abrufen, indem Sie den folgenden Code verwendet:Java-Code, um die Liste des Dateinamens aus einem Ordner zu erhalten

String path = "D:\\Projects worked upon\\ANZ\\Anz new\\Files\\329703588_20160328124733595\\Output"; String files; 

     File folder = new File(path); 
     File[] listOfFiles = folder.listFiles(); 

     for (int i = 0; i < listOfFiles.length; i++) 
     { 
      if (listOfFiles[i].isFile()) 
     { 
     files = listOfFiles[i].getName(); 
      if (files.toLowerCase().endsWith(".xml")) 
      { 
       System.out.println(files); 

       } 

, aber ich brauche nur der erste Teil für ZB: Wenn der Dateiname in Ordner „abc_Transformed.xml“, erfordern i nur abc .. Wie bekomme ich es?

+1

Split auf dem "_"? – markspace

+0

Beispiel Split http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java –

+0

1) 's.split (" _ ") [0]'. 2) 'sstring (0, s.indexOf ('_'))'. 3) regex: '(. *?) _' – Andreas

Antwort

0

Sie können die Substring-Methode verwenden, um die erste Zeichenfolge zu finden.

if (files.toLowerCase().endsWith(".xml")) 
      { 
       String result = files.substring(0, files.indexOf("_")); 
       System.out.println(result);    
       } 

Ihren ganzen Code

String path = "D:\\Projects worked upon\\ANZ\\Anz new\\Files\\329703588_20160328124733595\\Output"; String files;  
     File folder = new File(path); 
     File[] listOfFiles = folder.listFiles();  
     for (int i = 0; i < listOfFiles.length; i++) 
     { 
     if (listOfFiles[i].isFile()) 
      { 
      files = listOfFiles[i].getName(); 
      if (files.toLowerCase().endsWith(".xml")) 
      { 
       String result = files.substring(0, files.indexOf("_")); 
       System.out.println(result);  
       } 
0

Die Informationen über die Dateien ist im Grunde irrelevant. Sie sind nach einigen grundlegenden String Manipulationsfunktionen.

Sie könnten versuchen, etwas mit String.split() wie:

String[] pieces = files.split("_"); 
String first = pieces[0]; // should be equal to "abc" 

Oder etwas String.indexOf() und String.substr() wie mit:

int indexOfUnderscore = files.indexOf("_"); 
String first = files.substr(0, indexOfUnderscore); // should be equal to "abc" 

Wenn Sie Java vertraut sind, es lohnt sich, die Zeit zu verbringen alle Meinung die String functions.

Verwandte Themen