[Java] 纯文本查看 复制代码
package com.sp;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo {
// 定义一个map集合,存放后缀名个数
private static Map<String, Integer> map = new HashMap<>();
public static void main(String[] args) {
// 要遍历的路径
File file = new File("D:\\桌面\\1");
map = diGui(file);
// 遍历Map
Set<String> keySet = map.keySet();
for (String key : keySet) {
int num = map.get(key);
System.out.println("扩展名:" + key + ": " + num + "个");
}
}
/**
* 递归判断路径
*/
private static Map<String, Integer> diGui(File file) {
// 判断路径是否存在
if (file.exists()) {
if (file.isFile()) {
// 如果是文件,获取后缀名,添加到map集合
String houZhui = file.getName().substring(
file.getName().lastIndexOf(".") + 1);
// 添加到map集合
if (map.containsKey(houZhui)) {
// 如果houZhui已存在,获取值+1
Integer value = map.get(houZhui);
value++;
map.put(houZhui, value);
} else {
// 如果houZhui已存在,值直接设为1
map.put(houZhui, 1);
}
} else {
// 是文件夹,获取文件夹下的文件及文件夹,继续递归
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
diGui(file2);
}
}
}
return map;
}
}