使用Java程序重命名视频文件

时间:2017-05-04 01:59:01

标签: java

我有一个包含许多我想要重命名的视频的文件夹。我无法想到任何方便的方式。命名约定如下" 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文件可以下载所有电视节目,其中包含剧集的名称,那么它很有用。

无论如何,我们将非常感谢任何建议!

1 个答案:

答案 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);

然后,您可以使用此信息为视频文件创建单独的文件名。

相关问题