我使用以下代码解析电影目录以获取电影的标题。
List<Movie> moviesList = new ArrayList<>();
public String list(Request request, Response response) throws IOException {
File file = new File("Z:\\Films");
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
Movie movie = new Movie(files[i].getName());
moviesList.add(movie);
}
现在我想得到一个同名的 jpeg 文件,它在同一个目录中,以便在网页上显示它们。我不知道如何继续..
我用 JK 的想法尝试了类似的东西(再次感谢):
public String list(Request request, Response response) throws IOException {
File file = new File("Z:\\testApp");
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().endsWith(".jpg") || files[i].getName().endsWith(".nfo") || files[i].getName().endsWith(".srt")) {
continue;
} else {
String title = files[i].getName();
File image = accept(files, title);
Movie movie = new Movie(title, image);
moviesList.add(movie);
}
}
Map<String, Object> model = new HashMap<>();
model.put("movies",moviesList);
System.out.println(moviesList.get(0).getImage());
createMovieListTxt();
return Template.render("movies_list.html",model);
}
public File accept(File[] files, String title) {
File img = null;
String[] split = title.split(" ");
strVerif = split[0];
for (int i = 0; i < files.length; i++) {
String[] strings = files[i].getName().split(" ");
if (strings[0].startsWith(strVerif) && files[i].getName().endsWith(".jpg")) {
img = new File(files[i].getName());
break;
} else {
continue;
}
}
return img;
}```
答案 0 :(得分:0)
您可以在 for 循环后再次列出文件并使用 FilenameFilter
。
file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//check if your movie list contains the name and if the extension matches
}
});