一、工具类代码
/**
*@Description: searchFiles
*@Param: * @Param: folder 文件夹
* * @Param: keyword 文件名包含的关键字
*@return: java.util.List<java.io.File>
*@Author: Blue Blue
*@date: 2022/1/12 0012 10:01
*/
public static List<File> searchFiles(File folder, String keyword) {
List<File> result = new ArrayList<>();
if (folder.isFile()) {
result.add(folder);
}
//遍历文件
File[] fileList = folder.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
if (file.isDirectory()) {
return true;
}
if (file.getName().toLowerCase().contains(keyword)) {
return true;
}
return false;
}
});
if (fileList != null) {
for (File file : fileList) {
if (file.isFile()) {
//如果是文件将文件添加到result列表中
result.add(file);
} else {
//如果是文件夹,则递归调用本方法,然后把所有的文件加到result列表中
result.addAll(searchFiles(file, keyword));
}
}
}
return result;
}
二、核心代码示例
String path = path + "/" + date + "/" + iceName + "/";
File file = new File(path);
List<File> files = FileUtil.searchFiles(file, iceName);
logger.info("文件路径:{}", path);
if (files.size() <= 0) {
logger.info("{}——>文件不存在:{}", date, path);
}
for (File file1: files) {
String fileName = file1.getAbsolutePath();
logger.info("文件名称:{}", fileName);
}