2012-10-17 71 views
0

只做這個,因爲我很懶。我剛剛寫了一個程序,將我所有的音樂列入一個excel文件。如何擺脫使用getName()時的文件類型?

import java.io.*; 
    import org.apache.commons.io.FileUtils; 

     public class NewClass { 

     public static void main(String args[]) 
     { 
      File folder = new File("C:/Users/Public/Music/OldMusic"); 
      File[] listOfFiles = folder.listFiles(); 

      for (int i = 0; i < listOfFiles.length; i++) { 
      try{ 
       FileUtils.writeStringToFile(new File("test.xls"), listOfFiles[i].getName(), true); 
       BufferedWriter output; 
       output = new BufferedWriter(new FileWriter("test.xls", true)); 
       output.newLine(); 
       output.close(); 
      } 
      catch (IOException e){ 
      } 
      } 
     } 
    } 

的代碼工作正常,但在每首歌曲結束還有.MP3(即:Metallica的 - 沒有別的Matters.mp3)。

有沒有辦法讓歌曲的名稱在末尾沒有.mp3

+2

可能的重複[如何從Java中的字符串修剪文件擴展名?](http://stackoverflow.com/questions/941272/how-do-i-trim-a-file-extension-from- a-string-in-java) –

+1

*「在沒有.mp3的歌曲名稱的末尾?」*我有一個MP3文件的集合,其中文件的名稱通常與標題該軌道本身在嵌入文件中的** ID3 v.2 **標籤中表現得更好。 –

回答

1

用途:

String fname = listOfFiles[i].getName(); 
fname.substring(0, fname.lastIndexOf(".")) 

不是傳遞的..

listOfFiles[i].getName() 
+0

現在越來越難以理解(主要是由於在線代碼格式化)。 –

+0

:)我只是不斷編輯答案。我希望現在看起來更好。 – Reddy

+0

看看你是否可以接受我的建議編輯,如果沒有,請回滾。我認爲這是因爲(數量有限)顏色更清晰,每條語句都在一條線上。 –

1
import java.io.*; 
import org.apache.commons.io.FileUtils; 

    public class NewClass { 

    public static void main(String args[]) 
    { 
     File folder = new File("C:/Users/Public/Music/OldMusic"); 
     File[] listOfFiles = folder.listFiles(); 

     for (int i = 0; i < listOfFiles.length; i++) { 
     try{ 
      FileUtils.writeStringToFile(new File("test.xls"), listOfFiles[i].getName().substring(0, listOfFiles[i].getName().indexOf(".mp3")), true); 
      BufferedWriter output; 
      output = new BufferedWriter(new FileWriter("test.xls", true)); 
      output.newLine(); 
      output.close(); 
     } 
     catch (IOException e){ 
     } 
     } 
    } 
} 
+0

.MP3擴展名爲? –

+0

您可以將listOfFiles [i] .getName()。indexOf(「。mp3」)更改爲listOfFiles [i] .getName()。toLowerCase()。indexOf(「。mp3」) –

+0

*「You could ..」*我***會使用ID3 v。2標籤,所以'不,謝謝'。 –

3

既然你已經使用FileUtils,請注意,你處理的擴展方法。

參見FileUtils.removeExtension

期待通過代碼,你會看到,這些方法處理的文件擴展名 - 也getExtensionisExtension - 一切只用lastIndexOf,所以他們只能處理簡單的情況,但這應該足以滿足您的目的。

+0

+1,這肯定比直接lastIndexOf解決方案。那個解引用數組元素兩次。 – TheBlastOne