標籤:logs 遞迴 nload time else ++ package local repeat
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迭代