欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java实现两个文件夹内的差异文件对比

程序员文章站 2024-01-09 17:05:42
最近项目中遇到一个问题,需要手动管理lib包,然后两个文件夹一个一个去看太麻烦了,动手写了个小功能,可以对比两个文件夹中的差异文件。代码如下:package com.example.demo.Controller;import java.io.File;import java.util.Arrays;import java.util.Iterator;import java.util.LinkedList;public class FileCompare { pub.....

 最近项目中遇到一个问题,需要手动管理lib包,然后两个文件夹一个一个去看太麻烦了,动手写了个小功能,可以对比两个文件夹中的差异文件。

 

代码如下:

package com.example.demo.Controller;


import java.io.File;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;

public class FileCompare {
    public static void main(String[] args) {
        String path1 = "文件夹1路径";
        String path2 = "文件夹2路径";

        LinkedList<String> compare = compare(getFileList(path1), getFileList(path2));
        System.out.println("差异文件数量为:" + compare.size());
        System.out.println("=============================================");
        for (String s : compare) {
            System.out.println(s);
        }
    }

    private static LinkedList getFileList(String path) {
        File file = new File(path);
        String[] list = file.list();
        return new LinkedList<>(Arrays.asList(list));
    }

    private static LinkedList<String> compare(LinkedList<String> list1, LinkedList<String> list2) {
        Iterator<String> it1 = list1.iterator();
        while (it1.hasNext()) {
            String s1 = it1.next();
            for (int i = 0; i < list2.size(); i++) {
                String s2 = list2.get(i);
                if (s1.equals(s2)) {
                    it1.remove();
                    list2.remove(i);
                    break;
                }
            }
        }
        list1.add("===============================以上为文件夹1的差异文件,以下为文件夹2的差异文件===============================");
        list1.addAll(list2);
        return list1;
    }
}

运行效果:

Java实现两个文件夹内的差异文件对比

Java实现两个文件夹内的差异文件对比

Java实现两个文件夹内的差异文件对比

本文地址:https://blog.csdn.net/CloudNineN/article/details/112514015

相关标签: java

上一篇:

下一篇: