java 找出两个文件夹下所有的不同文件
2012-05-30 15:55
441 查看
为什么写这个类咧,因为修改的地方太多了,也不知道修改了哪些文件,(刚跳到一家公司,老大直接拷贝的project给我的,并删掉了SVN相关的文件,防止新员工瞎提交,所以写了这个类,拿Eclipse里的project和老大拷给我的project比较一下,就OK了)。
package com.org.ruizi; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class FileCompare { public FileCompare() { } private final String type = ".jsp"; private void getDir(File f,Map<String, Long> map, int level) { File[] childs = f.listFiles(); for (int i = 0; i < childs.length; i++) { if (childs[i].isDirectory()) { this.getDir(childs[i],map,level + 1); }else{ if(type.equals(childs[i].getName().substring(childs[i].getName().lastIndexOf(".")))){ map.put(childs[i].getName(), childs[i].length()); } } } } /** * 查询两个文件夹下所有的不同文件,并保存到批定的文件中 * @param sourceFolder 源文件夹路径 * @param targetFolder 目标文件夹路径 * @param saveFile 保存的文件路径 * @author gzq */ private void compareFile(String sourceFolder,String targetFolder,String saveFile){ Map<String, Long> sourceMap = new HashMap<String, Long>(); Map<String, Long> targetMap = new HashMap<String, Long>(); new FileCompare().getDir(new File(sourceFolder), sourceMap,0); new FileCompare().getDir(new File(targetFolder), targetMap,0); File f = new File(saveFile); if (f.exists()){ try { f.delete(); f.createNewFile(); } catch (IOException e) { System.out.println(e); } } else{ try { f.createNewFile(); } catch (IOException e) { System.out.println(e); } } String source = null; byte[] bytes = null; OutputStream os; try { os = new FileOutputStream(saveFile); Set set = sourceMap.entrySet(); Iterator i = set.iterator(); while (i.hasNext()) { Map.Entry<String, Long> entry1 = (Map.Entry<String, Long>) i.next(); if (!sourceMap.get(entry1.getKey()).equals(targetMap.get(entry1.getKey()))) { source = entry1.getKey()+"\r\n"; bytes = source.getBytes(); os.write(bytes); } } os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args){ new FileCompare().compareFile("D:\\Users\\Administrator\\Desktop\\A", "D:\\Users\\Administrator\\Desktop\\B", "D:\\Users\\Administrator\\Desktop\\compareFile.txt"); System.out.println("0"); } }
相关文章推荐
- java找出两个文件之间不同的内容--该方法属于比较笨的方法
- Java 查找两个文件夹中不同文件名的文件
- 遍历文件夹找出所有.java文件(递归)
- 【Java】读取其下所有文件夹与文件的路径
- 找出两个将近十万多条记录的文件中的不同记录
- JAVA实现把指定文件夹下的所有文件压缩成zip包
- 递归查找文件夹与所有文件-java基础
- java/android 统计文件夹大小及删除文件夹下所有文件和路径
- java 递归实现删除或查询指定文件夹下的所有文件
- JAVA 遍历文件夹下的所有文件
- java获取一个文件夹中所有文件的名称
- 微软BI 之SSIS 系列 - 在 SSIS 中将指定目录下的所有文件分类输出到不同文件夹
- 找出指定文件夹中的所有以txt结尾的文件,包括所有嵌套的子文件夹
- 通过java编写的可以比对两个文件夹的不同代码
- java遍历文件夹并将文件夹里的所有文件同样的复制到另一个文件中
- Java 复制文件夹以及文件夹下的所有文件
- 找出两个文件之间的不同
- 用java删除文件夹里的所有文件
- java读取某个文件夹下所有文件与文件夹
- java读取文件夹下所有文件并替换文件每一行中指定的字符串