下载一部电视剧之后,发现名称有些不好,例如有些名称为:
dd.xxxx(dd代表数字,xxxx表示格式)
或者
pppppddppp.xxxx(p表示一些乱七八糟的东西,广告网址等)
我想把他们的名称瞬间修改为统一的格式:
prefix+dd.xxxx
用Java编写的程序如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReName {
private String root = "";
private String prefix = "";
public ReName(String root, String prefix) {
this.root = root;
this.prefix = prefix;
}
public boolean doReName() {
if (root == null)
return false;
File directory = new File(root);
if (!directory.isDirectory()) {
return false;
}
root = directory.getPath() + System.getProperty("file.separator");
File[] files = directory.listFiles();
String temp = "";
Pattern p = Pattern.compile("//D.*//D(//d{1,3}).*(//.//w+)");
Matcher m = null;
for (File f : files) {
if (!f.isFile())
continue;
temp = f.getName();
//
System.out.println(temp);
//
m = p.matcher(temp);
if (m.find()) {
temp = m.group(1) + m.group(2);
}
if (prefix == null)
prefix = "";
temp = root + prefix + temp;
//
System.out.println(temp);
//
f.renameTo(new File(temp));
}
return true;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入存放电视剧的目录路径:");
String tvRoot = br.readLine();
System.out.println("请输入前缀:");
String prefix = br.readLine();
ReName rn = new ReName(tvRoot, prefix);
rn.doReName();
}
}