2017-02-10 9 views
0

私は現在、ファイル名の変更に問題があります。タイムスタンプに文字を追加する

import java.io.File; 
import java.io.IOException; 

public class FileRename { 
    public static void main(String[] argv) throws IOException { 

     File folder = new File("x:\\chadhold\\test\\"); 

     File[] listOfFiles = folder.listFiles(); 
     if(listOfFiles != null){ 

      for (int i = 0; i < listOfFiles.length; i++) { 
       if (listOfFiles[i].isFile()) { 
        File f = new File("x:\\chadhold\\test\\"+listOfFiles[i].getName()); 
        String currentName = f.getName();    
        currentName = currentName.replace(".D**************", ".D******.T********"); 
        f.renameTo(new File("x:\\chadhold\\test\\" + currentName)); 
        // f.renameTo(new File("x:\\chadhold\\test\\" +currentName.substring(0, currentName.lastIndexOf(".")))); 
       } 
      } 
     } 
     System.out.println("conversion is done"); 
    } 
} 

それでは、私はここでやろうとしていて、各ファイルを異なる名前が付けられますので、これらのファイルは、私が使用している理由であるタイムスタンプを持つエンド*****ある.D で始まるファイルを見つけることです。

ファイル名から最後の2文字を削除する必要があります。

うまくいけば私はこれを十分に説明しました!

ありがとうございます。

+0

あるサンプル入力/出力名を記載してください。 – shmosel

+0

foo.startsWith( "。D")を使用して適切な文字列を検索し、.substringを使用して文字列の一部を取得して連結し直すことができます。 – Compass

+0

AFK0281.EETM.D1TWP015-02.20170208200225253 => AFK0281.EETM.D1TWP015-02.D170208.T200225253 –

答えて

0

文字列にreplaceメソッドを使用するのではなく、ファイル名を解析して新しいメソッドを返すほうがよいでしょう。

public static void main(String[] args) { 
    System.out.println(newFileName("AFK0281.EETM.D1TWP015-02.20170208200225253")); 
} 

private static String newFileName(String currentName) { 
    String[] parts = currentName.split("\\."); 
    String last = parts[parts.length - 1]; 
    parts[parts.length - 1] = "D" + last.substring(2, 8) + ".T" + last.substring(9); 

    StringBuilder sb = new StringBuilder(); 
    for (String s : parts) { 
     sb.append(s).append("."); 
    } 
    String newName = sb.toString(); 
    return newName.substring(0, newName.length() - 1); 
} 

出力は

AFK0281.EETM.D1TWP015-02.D170208.T200225253

+0

申し訳ありませんが、私は多くのJava開発者ではありません。私のコードを調整してもらえますか? –

+0

置き換えを行っていた場所を 'currentName = newFileName(currentName)'に置き換えます。 –

+0

StringUtilsを解決できません。 私はbtwを助けていただきありがとうございます。 –

関連する問題