java比较文件和文件夹
2012-11-21 16:24
190 查看
用到了apache的commons-codec-1.7.jar包, 用于比较文件的md5值
代码如下
代码如下
public static boolean compareFolder(File file1, File file2) { if (file1 == null || file2 == null) { return false; } if (!file1.isDirectory() || !file2.isDirectory()) { return false; } File[] listFiles1 = file1.listFiles(); File[] listFiles2 = file2.listFiles(); int fileCount1 = listFiles1.length; int fileCount2 = listFiles2.length; if (fileCount1 != fileCount2) { return false; } for (int i = 0; i < fileCount1; i++) { if (listFiles1[i].isFile() && listFiles2[i].isDirectory()) { return false; } else if (listFiles1[i].isDirectory() && listFiles2[i].isFile()) { return false; } else if (listFiles1[i].isFile() && listFiles2[i].isFile()) { if (!compareFile(listFiles1[i], listFiles2[i])) { return false; } } else if (listFiles1[i].isDirectory() && listFiles2[i].isDirectory()) { if (!compareFolder(listFiles1[i], listFiles2[i])) { return false; } } } return true; } public static boolean compareFile(File file1, File file2) { if (file1 == null || file2 == null) { return false; } if (!file1.isFile() || !file2.isFile()) { return false; } try { FileInputStream fis1 = new FileInputStream(file1); FileInputStream fis2 = new FileInputStream(file2); String md5Hex1 = DigestUtils.md5Hex(fis1); String md5Hex2 = DigestUtils.md5Hex(fis2); if (md5Hex1.equals(md5Hex2)) { return true; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return false; }
相关文章推荐
- 使用JAVA实现比较两个文件夹下的文件新增和修改情况,并复制到新的目录(实现增量更新项目)
- java比较两个文件夹下的文件是否一致
- 【代码】Java比较文件夹文件
- 【代码】Java比较文件夹文件
- java删除文件夹下所有文件
- java 删除文件和删除文件夹下面的文件
- 【JAVA与C#比较】文件
- java 扫描文件夹所有下文件
- 用JAVA扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出 .
- java中利用IO流复制文件夹和文件
- Java读取大文件的方式比较
- java来实现zip压缩文件或者文件夹
- java 将文件夹压缩为zip压缩文件
- Java 读取文件夹下所有文件
- Java解压缩zip - 解压缩多个文件或文件夹
- Java IO遍历文件夹,并返回所有后缀名为.dcm的文件列表
- Java IO 拷贝文件比较
- Java遍历文件夹下所有文件并替换指定字符串
- java读取某个文件夹下的所有文件
- java获得当前文件夹的文件