我正在尝试将我的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;进行。
我意识到当我使用通配符时它没有用。
答案 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);
希望这有帮助。