2016-03-29 10 views
1

私は約5600個のファイルが存在するシナリオを持っています。 私は以下のコードを使用して、ファイル名を取得することができる午前:フォルダからファイル名のリストを取得するためのJavaコード

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

       } 

を、私はために、例えば最初の部分のみを必要とする:フォルダ内のファイル名は「abc_Transformed.xml」であれば、私はABCのみ必要..それを得る方法?

+1

"_"で分割しますか? – markspace

+0

分割例を見てください。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

答えて

0

部分文字列メソッドを使用して、最初の文字列を見つけることができます。

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

あなたの全体のコード

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

ファイルに関する情報は基本的に無関係です。あなたはいくつかの基本的な操作の後になっていますString操作機能。

あなたは次のようにString.split()を使って何かを試みることができる:あなたは、Javaに新しいしている場合、それはすべてを検討する時間を費やす価値がある

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

:よう

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

またはString.indexOf()を使って何かしてString.substr()String functions

関連する問題