在时间戳中添加字符

时间:2017-02-10 20:30:43

标签: java

我目前陷入了重命名文件的问题。

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开头的文件 这些文件以时间戳结束,这就是我使用*****的原因,因为每个文件的名称都不同。

我需要输入.T并从文件名中删除最后2个字符。

希望我解释得足够好!

提前致谢。

1 个答案:

答案 0 :(得分: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