0

私は怠け者だからこれをしているだけです。すべての音楽を Excel ファイルに一覧表示するプログラムを作成しました。

   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 - Nothing Else Matters.mp3 )。

最後に.mp3を付けずに曲の名前を付ける方法はありますか?

4

3 に答える 3

3

を既に使用しているFileUtilsため、拡張機能を処理するためのメソッドを取得することに注意してください。

を参照してくださいFileUtils.removeExtension

getExtensionコードに目を通すと、これらのファイル名拡張子を処理するためのメソッド (また, isExtension- もすべて を使用しているため、単純なケースのみを処理するものであることがわかりますがlastIndexOf、目的にはこれで十分なはずです。

于 2012-10-17T15:39:32.787 に答える
1

使用する:

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

渡す代わりに..

listOfFiles[i].getName()
于 2012-10-17T15:36:01.950 に答える
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){
         }
      }
  }
 }
于 2012-10-17T15:36:21.007 に答える