首页 > 代码库 > 【java】递归统计本地磁盘所有文件,提取重复文件,JDK8 map迭代
【java】递归统计本地磁盘所有文件,提取重复文件,JDK8 map迭代
package com.sxd.createDao; import java.io.File; import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; public class Test { private long a = 0; Map<String, File> map = new HashMap<String, File>(); Map<String, String> repeatMap = new TreeMap<String ,String>(); @org.junit.Test public void test() { System.out.println(LocalDateTime.now()); //本机磁盘上所有文件 File [] files = File.listRoots(); for (File file : files) { num(file); } // num(new File("D:/BaiduYunDownload")); //单个文件夹下 System.out.println("计算机文件总数:"+a); System.out.println(LocalDateTime.now()); if(repeatMap.size() > 0){ repeatMap.forEach((k,v)->System.out.println("文件路径:"+k+" 文件名:"+v)); } } //计算文件夹下所有文件总数 public void num(File file){ if(file.isDirectory()){ File [] files = file.listFiles(); if(files != null){ for (File string : files) { num(string); } } }else{ a++; if(map.containsKey(file.getName())){ File thisFile = map.get(file.getName()); if(file.getTotalSpace() == thisFile.getTotalSpace()){ repeatMap.put(file.getPath() , file.getName()); repeatMap.put(thisFile.getPath(),thisFile.getName()); } }else{ map.put(file.getName(),file); } } } }
【java】递归统计本地磁盘所有文件,提取重复文件,JDK8 map迭代
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。