搜索具有相同名称但扩展名不同的文件 Java

时间:2021-01-27 13:12:54

标签: java file directory

我使用以下代码解析电影目录以获取电影的标题。

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;
    }```

1 个答案:

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

相关问题