方法一:只查找一个文件
//此方法是当文件目录下没有重名文件时使用,当有重名时,找第一个文件(最前面的文件夹的最外面那一层的文件)
//file:传入一个文件对象(要查寻的文件目录),fileName是要查找的文件名
File returnFile = null;
List<File> files = new ArrayList<>();
for (File subfile : file.listFiles()) {
if (subfile.isDirectory()) {
files.add(subfile);
} else {
if (subfile.getName().equals(fileName)) {
return subfile;
}
}
}
if (!files.isEmpty()) {
for (File file2 : files) {
returnFile = findFile(file2, fileName);
if (returnFile != null)
break;
}
}
return returnFile;
}
方法二:查询多个文件
//当目录下有多个重名文件时使用
//通过文件名查询文件
public List<File> findFile(File file, String fileName) {
ArrayList<File> arrayList = new ArrayList<>();
File returnFile = null;
ArrayList<File> list = new ArrayList<>();
File[] listFiles = file.listFiles();
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
list.add(subFile);
} else {
if (fileName.equals(subFile.getName())) {
arrayList.add(subFile);
}
}
}
if (!list.isEmpty()) {
for (File file2 : list) {
List<File> findFile = findFile(file2, fileName);
arrayList.addAll(findFile);
}
}
return arrayList;
}