问题描述:
实现一个程序,该程序的输入是一个目录字符串和一个文件拓展名字符串,程序递归地搜索该目录及其各级子目录,在这些目录中查找所有拓展名与指定拓展名相同的文件,将这些文件的相对路径名记录下来并向控制台输出。
import java.io.File;
import java.util.*;
public class Eighth2 {
static int k=0;
public static void main(String[] args) {
System.out.print("请输入需要读取的目录的绝对路径:");
Scanner scan=new Scanner(System.in);
String directory1=scan.next();
System.out.print("请输入需要记录的文件扩展名:");
String ext=scan.next();
String extension="."+ext;
scan.close();
List<String> list=new ArrayList<String>();
File directory=new File(directory1);
list=search(directory,extension,list);
if(k==0) System.out.print("在目录 "+directory+" 中查找不到拓展名为 "+ext+" 的文件");
else {
System.out.println("在目录 "+directory+" 中拓展名为 "+ext+" 的文件有:");
for(String s:list) System.out.println(s);
}
}
public static List<String> search(File directory,String extension,List<String> list) {//递归搜索目录及子目录下的指定扩展名文件
File[] dirs=directory.listFiles();
if(dirs==null) return list;
for(File dir:dirs) {
if(dir.isDirectory()) search(dir,extension,list);
else {
if((dir.toString().indexOf(extension))!=-1) {
list.add(dir.toString());
k++;
}
}
}
return list;
}
}
这估计是最后一个有关Java题目的博客啦
本人Java学得不多也不精,还请多指教