<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java 刪除目錄下相同文件

      摘要:通過MD5算法對(duì)指定目錄下的文件去重。

      背景

      ??之前寫了一篇博客《Java判斷兩個(gè)文件是否相同》,介紹如何校驗(yàn)兩個(gè)文件內(nèi)容是否相同,但是,不適用于對(duì)目錄下文件去重的場(chǎng)景,故對(duì)其進(jìn)行擴(kuò)展。

      文件去重

      ??本文中使用的核心工具類DigestUtils來自如下jar包:

      <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
      <dependency>
          <groupId>commons-codec</groupId>
          <artifactId>commons-codec</artifactId>
          <version>1.18.0</version>
      </dependency>
      

      ??要判斷多個(gè)文件是否相同,猿友們可以基于DigestUtils.md5Hex通過計(jì)算文件的 MD5 哈希值來實(shí)現(xiàn)。如果兩個(gè)文件內(nèi)容的字節(jié)流 MD5 哈希值相同,則可以認(rèn)為這兩個(gè)文件的內(nèi)容是相同的。以下是一個(gè)基于Map的、簡(jiǎn)單的 Java 代碼示例,演示如何計(jì)算文件的 MD5 哈希值并判斷文件是否相同:

      import org.apache.commons.codec.digest.DigestUtils;
      
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.IOException;
      import java.nio.file.Files;
      import java.nio.file.Path;
      import java.nio.file.Paths;
      import java.util.HashMap;
      import java.util.Map;
      import java.util.stream.Stream;
      
      /**
       * @Author Wiener
       * @Date 2025-02-17
       * @Description: 通過MD5算法對(duì)文件去重
       */
      public class distinctFileByMd5 {
      
          public static void main(String[] args) {
              // 替換為實(shí)際文件目錄
              String targetPath = "/Users/樓蘭胡楊/文件目錄";
              walkDelete(targetPath);
          }
      
          /**
           * 檢查指定目錄下的文件是否相同,如果相同,只保留一個(gè)
           *
           * @param targetPath
           */
          public static void walkDelete(String targetPath) {
              Path dir = Paths.get(targetPath);
              /**
               * key: md5
               * value: 文件名
               */
              Map<String, String> distinctFileMd5Map = new HashMap<>();
              try (Stream<Path> paths = Files.walk(dir)) {
                  paths.forEach(path -> {
                      if (Files.isRegularFile(path)) {
                          // 是文件,轉(zhuǎn)成md5字符串校驗(yàn)是否存在相同文件
                          String fileName = path.toString();
                          // 通過路徑+名字拿到舊文件
                          File f = new File(fileName);
                          String fileMd5 = "";
                          try {
                              fileMd5 = DigestUtils.md5Hex(new FileInputStream(f));
                          } catch (IOException e) {
                              throw new RuntimeException(e);
                          }
                          if (distinctFileMd5Map.containsKey(fileMd5)) {
                              f.delete();
                              System.out.println("已經(jīng)存在的文件名是: " + distinctFileMd5Map.get(fileName));
                              System.out.println("刪除的文件名是: " + fileName);
                          } else {
                              distinctFileMd5Map.put(fileMd5, fileName);
                          }
                      } else if (Files.isDirectory(path)) {
                          // 是目錄,不校驗(yàn)
                          System.out.println("Directory: " + path);
                      }
                  });
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
      

      ??nio中新提供的Files類可以很方便的操作文件,F(xiàn)iles.walk通過遞歸遍歷指定目錄的文件樹列出其中的所有文件,返回的是文件路徑流,通常用于遍歷文件的場(chǎng)景。

      posted @ 2025-02-17 19:51  樓蘭胡楊  閱讀(95)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 高清免费毛片| 天堂在线最新版av观看| 人成午夜免费大片| 国产高清在线精品一区二区三区 | 超碰伊人久久大香线蕉综合| 男女动态无遮挡动态图| 成年午夜性影院| 欧美人成在线播放网站免费| 日本黄页网站免费观看| 临沂市| 亚洲最大成人在线播放| 诱人的老师hd中文字幕| 色婷婷日日躁夜夜躁| 国产丰满乱子伦无码专区| 日韩精品一区二区三区激| 久久精品国产一区二区三| 色悠悠国产精品免费观看| 国产性色av免费观看| 年轻女教师hd中字3| 国产av永久无码天堂影院 | 国产精品成人一区二区不卡| 野花韩国高清电影| 99人中文字幕亚洲区三| 国精产品一区一区三区mba下载| 国产中年熟女大集合| 精品国产迷系列在线观看| 色噜噜亚洲精品中文字幕| 亚洲欧美不卡高清在线| 国产一二三五区不在卡| 青青国产揄拍视频| 一区二区三区四区五区自拍| 欧美人与动牲猛交A欧美精品| 99久热在线精品视频| 国产精品成熟老女人| 伊人欧美在线| 国产成人精品午夜福利| 国产无遮挡裸体免费视频在线观看| 日韩欧国产美一区二区在线| 国产福利酱国产一区二区| 天天躁夜夜躁天干天干2020| 中国女人熟毛茸茸A毛片|