首页 > 解决方案 > 根据用户在java中提供的名称列表列出目录中的文件

问题描述

目前,我可以使用以下函数获取文件名列表。

public class HelloWorld {

    public static void main(String[] args) {

        List < String > s = new ArrayList < > ();
        s.add("AulaIternational.pdf");
        s.add("Spanish Essentials For Dummies.pdf");
        List < File > flist = new ArrayList < > ();

        for (String str: s) {
            File newFile = new File("C:\\Users\\Spanish Training\\" + str);
            if (newFile.exists()) {
                flist.add(newFile);
            }
        }
        System.out.println(flist);
    }
}

输出:“C:\Users\Spanish Training\AulaIternational.pdf, C:\Users\Spanish Training\Spanish Essentials For Dummies.pdf”

我的问题:是否可以使用 file.listfile(Filter) 简化相同的事情,或者我正在做正确的事情?

标签: javafile

解决方案


不会简化太多,但看起来更具可读性

List<File> flist = Arrays.asList(new File("C:\\Users\\Spanish Training\\").listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
    return s.contains(name);
}}));

推荐阅读