package com.fwd;
import java.io.File;
import java.util.HashMap;
/**
*
* @author fwd
*
*/
public class digui {
static HashMap<String, Integer> map = new HashMap<>();
public static void main(String[] args) {
File file = new File("D:\\");//封装成File对象
getFiles(file);
}
//获取文件名
private static void getFiles(File file) {
if (file.isDirectory()) { //判断根目录第一个文件如果是文件夹才获取listFIles数组
File[] subFiles = file.listFiles();
if (subFiles == null) { //如果是空文件夹直接返回,不用判断
return;
}
for (File subFlie : subFiles) {
if (subFlie.isFile() && subFlie.getName().indexOf(".")!=-1) { //判断文件名中包含(.)点,不包含就用点切割
String[] split = subFlie.getName().split("\\."); //切割之后返回的是一个String[]数组 String[0]存的是文件名,string[1]存的是后缀名
//计算文件出现的次数要用map集合来累加,创建一个静态的Hashmap集合,保证存储的键唯一
if (!map.containsKey(split[1])) {//判断集合中是够包含文件名,第一次存储进map肯定是不包含的,
map.put(split[split.length-1], 1);//把后缀名当做键存储,值从1开始存储,因为文件名中有可能存在多个(.)点,所以取最后一个.截取后返回的数组作为后缀名
}else{
map.put(split[1], map.get(split[1])+1); //map中包含键,值就+1存储
}
}else{
getFiles(subFlie);
}
}
}
//最后遍历集合
for (String m : map.keySet()) {
System.out.println("文件后缀名为:"+ m +"有"+map.get(m)+"个" );
}
}
}
java递归调用——判断根目录盘符下的相同后缀名文件的个数
最新推荐文章于 2022-10-08 22:35:59 发布