1. 程式人生 > >【java】遞歸統計本地磁盤所有文件,提取重復文件,JDK8 map叠代

【java】遞歸統計本地磁盤所有文件,提取重復文件,JDK8 map叠代

this ash down logs out 文件名 pub new 重復

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叠代