有一个代码,它检查指定的目录并按名称在其中搜索指定的文件,如何修改这段代码以便它不按名称搜索文件,而是按大小(以字节为单位)搜索文件,而不仅仅是在指定的文件夹,但也在该文件夹中的文件夹中。
import java.io.File;
public class Main {
public static void main(String[] argv) throws Exception
{
File directory = new File("C:\\Users\\excit\\Desktop");
String[] flist = directory.list();
int flag = 0;
if (flist == null) {
System.out.println("Empty directory.");
}
else {
for (int i = 0; i < flist.length; i++) {
String filename = flist[i];
if (filename.equalsIgnoreCase("pom.xml")) {
System.out.println(filename + " found");
flag = 1;
}
}
}
if (flag == 0) {
System.out.println("File Not Found");
}
}
}
该类
File有一个重载方法list,该方法将接口实现作为参数FilenameFilter。因此,您可以根据所需的条件过滤搜索结果。例如:好吧,要在嵌套文件夹中搜索 - 将这段代码取出
psvm到一个单独的方法中,然后根据条件递归拉取它file.isDirectory(),或者根据相同条件将找到的文件夹添加到某个集合中,然后在其中进行搜索。