给一个文件夹,在文件夹里查询所有名字等于name或者包含name的文件,统计出来一个文件集合的场景:
floaderFile:目标文件夹
String fileName:文件名字
result:用来装文件集合的List
isContain:文件名字是包含fileName还是等于fileName
public static List<File> searchFile(File floderFile, String fileName, List<File> result,Boolean isContain) {
File[] subFolders = floderFile.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()
|| (pathname.isFile() && pathname.getName().toLowerCase().contains(fileName.toLowerCase()))) {
return true;
}
return false;
}
});
if(isContain==true){
for (File subFolder : subFolders) {
if (subFolder.getName().contains(fileName)&& subFolder.isFile()) {
result.add(subFolder);
} else {
searchFile(subFolder, fileName, result,isContain);
}
}
}else{
for (File subFolder : subFolders) {
if (subFolder.getName().equals(fileName)&& subFolder.isFile()) {
result.add(subFolder);
} else {
searchFile(subFolder, fileName, result,isContain);
}
}
}
return result;
}