【发布时间】:2014-04-01 03:27:41
【问题描述】:
我有一个文件夹,其中包含许多子文件夹。为了更清楚,这里是文件夹的示例:
Movies:
MovieTitle:
Moviefile.mp4 (Movie File)
MovieSubtitles.srt (Subtitles)
MovieSeries:
MovieTitle:
Moviefile.mp4
MovieSubtitles.srt
我需要将每个 mp4 和 srt 文件重命名为以下“MovieTitle”。如果电影是系列的一部分,则应将其命名为系列“标题+电影标题”。让我们以《星球大战》为例说明系列以及如何命名。 “星球大战”将是“电影”中目录的名称。在“星球大战”中有 6 个文件夹,每个文件夹中都有一个 mp4 和 srt 文件。对于星球大战第 1 集,mp4 和 srt 文件应重命名为:“星球大战 - Episode 1.mp4”和“星球大战 - Episode 1.srt”。如果第 1 集不是系列的一部分,则应将其命名为“Episode 1.mp4”
这是我目前想出的代码:
public static void renaming(File[] files){
String dir1, dir2;
for(File movie: files){ //Main folder containing all of the movies.
dir1 = movie.getName();
for(File filesInMovie: movie.listFiles()){
if(filesInMovie.isDirectory()){ //This means that it is a series.
dir2 = filesInMovie.getName();
for(File i: filesInMovie.listFiles()){
i.renameTo(dir1 + " - " + dir2);
}
}else{
filesInMovie.renameTo(dir1)
}
}
}
}
我意识到 renameTo 是 Java 中的一个实际函数。我认为它会重命名文件,直到我读到它的实际作用(我仍然有点模糊)。所以我的主要问题是如何让这段代码正确地重命名文件。
只是一些额外的事情你应该知道: 一个目录包含所有电影。 电影文件夹中的每个文件夹都有可能 它里面有其他文件夹(这是一个系列) 它有一个mp4和srt文件 有什么问题请追问!!!
【问题讨论】:
-
您使用 Java 6 还是 Java 7+?
-
@fge 我正在使用 java 7
-
你也在使用番石榴吗?因为如果你这样做会很容易!
-
@fge 我目前没有使用它。事实上,从未听说过。这是什么?
-
见here;这是一个非常强大的库