输出xxx录下的所有后缀名和对应的个数(递归)

本文介绍了一种使用递归方法高效统计指定目录及其子目录下所有文件的后缀名及对应数量的方法。通过Java代码实现,可以方便地获取各种文件类型的分布情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用递归,高效计算目录下文件后缀名和对应的个数。
public class Test {
    public static void main(String args[]) { 
    File tFile = new File("D:/Program Files (x86)");//指定文件路径
    Map<String, Integer> tMap = new HashMap<String, Integer>();
    new Test().getFileTypeAndSize(tMap, tFile);//调用计算个数方法
   for (Iterator<String> key = tMap.keySet().iterator(); key.hasNext(); ){//便利输出
   String name = key.next();
   Integer size = tMap.get(name);
   System.out.println("后缀名为【"+name+"】的文件有"+size+"个");
  }
 }
 
 public void getFileTypeAndSize(Map<String, Integer> cMap, File cFile) {
  if (cFile.isDirectory()){//核心方法,(是否为目录)
   File[] tFiles = cFile.listFiles();
   for (File tFileIndex : tFiles)
    getFileTypeAndSize(cMap, tFileIndex);//递归
  } else {
   String [] tFileName = cFile.getName().split("\\.");//分割成后缀和文件名
   String tFileType = "";
   if (tFileName.length == 2) {//是否有后缀名
    tFileType = tFileName[1];
   }
   if (cMap.containsKey(tFileType)) {//已经存过了这个后缀名
    int tSize = (Integer)cMap.get(tFileType);
    cMap.put(tFileType, new Integer(tSize + 1));
   } else {//第一次存
    cMap.put(tFileType, new Integer(1));
   }
  }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值