• 【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);
                }
                
                
            }
        }
    }
     
  • 相关阅读:
    setlocale
    c++的 程序实体 作用域 名空间 变量生存期概念理解
    本人的Ubuntu 10.04配置清单
    hadoopStreamming 编程 Angels
    级联 mapreduce (Cascading Mapreduce) Angels
    委托
    OPC和XML/SOAP/Web Services
    实例管理2(会话服务)
    实例管理3()
    操作(Operation)
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/7200928.html
Copyright © 2020-2023  润新知