思路是运用递归方式:
1,录入的时候缺少了一个判断,代码写的不是很严谨,不知道还有没有其他问题,
2,不过递归的时候总感觉得到的目录怪怪的,
不知道怎么改正,有大神还望帮忙斧正,不胜感激
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入文件路径:");
String string=scanner.nextLine();
File file=new File(string);
//获取到文件夹中的所有文件放进一个静态集合,采用递归方法,
ArrayList<File> files=getFileAll(file);
System.out.println(files);
Map<String, Integer> hash=new HashMap<>();
int value1=0;
//遍历数组,取得文件和文件名,截取文件名.后面的字符串,并匹配
for (File file2 : files) {
String str=file2.getName().substring(file2.getName().indexOf(".")+1);
if (file2.getName().toLowerCase().endsWith(str)) {
hash.put(str, value1++);
}
}
scanner.close();
System.out.println(hash);
//遍历集合,取得键值对
Set<String> keys=hash.keySet();
for (String key : keys) {
System.out.println(key+"文件有"+hash.get(key)+"个");
}
}
static ArrayList<File> list=new ArrayList<>();
public static ArrayList<File> getFileAll(File file) {
File[] files=file.listFiles();
for (File file2 : files) {
if (file2.isFile()) {
list.add(file2);
}else {
getFileAll(file2);
}
}
return list;
}