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;
}
}
运行效果:
本文地址:https://blog.csdn.net/CloudNineN/article/details/112514015