2016-03-29 19 views
1

Yaklaşık 5600 dosyanın bulunduğu bir senaryo var. Ben aşağıdaki kodu kullanarak dosya adlarını almak mümkün duyuyorum:Bir klasörden dosya adı listesini almak için Java kodu

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); 

       } 

, ama Eg için sadece ilk bölümü gerekir: klasörde dosya adı "abc_Transformed.xml" ise, ben sadece gerektirir abc .. Nasıl alınır?

+1

"_" üzerinde bölme? – markspace

+0

Bölünmüş örneğe bakın http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java –

+0

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

cevap

0

İlk dizeyi bulmak için alt dizgi yöntemini kullanabilirsiniz.

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

senin tüm kod dosyaları hakkında

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

bilgiler temelde önemsizdir. Bazı temel String manipülasyon işlevlerinin peşindesiniz.

Sen gibi String.split() kullanarak bir şey deneyebilirsiniz: gibi String.indexOf() ve String.substr() kullanılarak

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

Ya bir şey: Eğer Java yeniyseniz

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

, tüm incelemek için zaman ayırmaya değer String functions.

İlgili konular