Javaでファイル名の一部分を指定した場所に移動させる

今朝のこと。トレーナーさんのスパッツprpr(2013年9月25日).jpgというような感じのファイルが大量にアレされまして、それを(2013年9月25日)トレーナーさんのスパッツprpr.jpgというような感じで括弧部分をファイル名の先頭に入れ替えておくれ、とアレされました。

どうせだし、勉強中のJavaで書いてアレすることにしますた。初心者なりに頭を悩ませながら、正直言って手動でやったほうが速かったような気がするけど、ちゃんと動いたので個人的メモとして晒しておく。

import java.io.*;
import java.util.regex.*;

public class ChangeFileName {

    public static String matchString(String reg, String tar) {
        Pattern p = Pattern.compile(reg);
        Matcher m = p.matcher(tar);

	if (m.find()) {
	   return m.group();
	}
    }
	
    public static void main(String args[]) {
     	String dir = "C:\\mobamasu\\orenoyome\\";
        File file = new File(dir);
        File files[] = file.listFiles();

        for (int i=0; i<file.length(); i++) {
            File oldFile = files[i];
        	
            String tar = oldFile.getName();
            String reg = "\\(.+?\\)";
            String getStr = matchString(reg, tar);
            
            tar = tar.replaceAll(reg, "");
            
            StringBuilder sb = new StringBuilder();
            sb.append(tar);
            sb.insert(0, getStr);
            
            File newFile = new File(dir + sb.toString());
            
            oldFile.renameTo(newFile);
        }

    }

}

汚いのは仕様です。たぶん、もっと簡単に動かす方法もあると思う。

真面目に書いたJavaってこれが初めてですしお寿司食べたい。