我有一个包含许多我想要重命名的视频的文件夹。我无法想到任何方便的方式。命名约定如下" SeasonX,EpisodeY:剧集名称"。这将是" SXEY:姓名"简而言之。
示例:S01E01:JavaCode 那将是第一季,Episode One的一集叫做JavaCode。
我写了一些能够改变文件名的东西,但是每集都需要不同且独特的文件名,因为它是一个电视节目。
以下是代码:
import java.io.File;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BatchFileRenamer {
public static void main(String[] args) {
// TODO Auto-generated method stub
File folder = new File("C:\\Users\\Tony\\Videos\\New folder");
TreeMap map = new TreeMap();
String name = "name";
File[] files = folder.listFiles();
Pattern p = Pattern.compile("\\..*");
for (int i = 0; i != files.length; i++) {
Matcher m = p.matcher(files[i].getName());
System.out.println(files[i].getName());
m.find();
files[i].renameTo(new File(folder.getAbsolutePath() + "\\" + name + " S01E" +
(i < 10 ? "1" : "") + i + m.group()));
}
}
}
我正在考虑创建一个包含剧集名称的数组,但这与在Windows中手动重命名它们的工作一样多。我想如果我有一个txt文件可以下载所有电视节目,其中包含剧集的名称,那么它很有用。
无论如何,我们将非常感谢任何建议!
答案 0 :(得分:0)
我认为最好的方法是使用Open Movie Database API。通过这种方式,您可以获得REST响应,包括每个节目季节的剧集列表。 (Example request)。
有了这个,您可以使用Gson或其他解析器来序列化剧集列表:
以下是一些示例代码的Gist。 (可能有更好的getter方法,但你明白了)
代码的作用是通过API从上面的示例请求中获取信息,然后使用Gson将其序列化为Episodes.java类中的基本POJO:
Gson gson = new Gson();
Episodes episodes = gson.fromJson(download, Episodes.class);
System.out.println(episodes);
然后,您可以使用此信息为视频文件创建单独的文件名。