将arrayList中的值与windows中的c:drive进行比较

时间:2016-07-07 15:32:34

标签: java arraylist

我正在尝试将我的arraylist中的所有值与我的c:drive

中的所有文件进行比较

但下面的代码不起作用

    List<String> list = new ArrayList<String>();
    list.add("*.txt,*.docx");
    File file = new File("c:\\*.txt");
    if (file.equals(list)) {
    System.out.println("file was found");
    }else{System.out.println("nothing was found");
    }

所以我的想法是,无论何时我运行我的代码,我的arraylist都会将自己与我的c:驱动器进行比较,并列出所有扩展名为&#34; docx和txt&#34;进行。

我意识到当我使用通配符时它没有用。

1 个答案:

答案 0 :(得分:0)

您需要FileNameFilter来获取与您的要求相关的所有文件

以下是从当前目录获取所有*.txt个文件的示例。您可以实现FileNameFilter来创建自己的过滤器,该过滤器可以在List上使用。

    File f = new File("."); // current directory

    FilenameFilter textFilter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            String lowercaseName = name.toLowerCase();
            if (lowercaseName.endsWith(".txt")) {
                return true;
            } else {
                return false;
            }
        }
    };

    File[] files = f.listFiles(textFilter);

希望这有帮助。