java 找出两个文件夹下不同的文件根据文件目录结构

 

public class NotExsitsByDir {

 

private static List<String> l1 = new ArrayList<String>();

private static List<String> l2 = new ArrayList<String>();

 

/**

* @方法功能说明:

* @修改者名字: 戚羊

* @修改时间:2012-9-3 下午02:54:41

* @参数:@param args

* @return:void

*/

public static void main(String[] args) {

File file = new File("F:\\test01");

NotExsitsByDir t = new NotExsitsByDir();

List<String> list1 = t.pathList(file, file ,l1);

File file2 = new File("D:\\新建文件夹\\test02");

List<String> list2 = t.pathList(file2 ,file2 ,l2);

List<String> h1 = new ArrayList<String>();

List<String> h2 = new ArrayList<String>();

for(String s1 : list1){

for(String s2 : list2){

if(s1.equals(s2)){

h1.add(s1);

h2.add(s2);

}

}

}

list1.removeAll(h1);

list2.removeAll(h2);

System.out.println("文件夹"+file.getName()+"有" + "文件夹"+file2.getName()+"没有");

for(String s : list1){

System.out.println(s);

}

System.out.println("----------");

System.out.println("文件夹"+file2.getName()+"有" + "文件夹"+file.getName()+"没有");

for(String s : list2){

System.out.println(s);

}

}

 

/**

* @方法功能说明:根据文件目录得到下面所有文件的path过滤掉文件收目录 如 传入 D:\\code clean 则返回搜有此目录下的 path

*                                     path经过处理去除d:\\code clean这段

* @修改时间:2012-9-3 下午03:16:50

* @参数:@param file 目录文件

* @参数:@param fileSrc 目录文件 与 上面 file 其实是同一个file

* @参数:@param l1 指定一个静态list存储数据

* @参数:@return

*/

public List<String> pathList(File file, File fileSrc ,List<String> l1) {

File[] list = file.listFiles();

if (list == null) {

return l1;

}

for (File f : list) {

if (f.isFile() && !f.isHidden()) {

String path = f.getPath();

String path2 = "";

path2 = path.replace(fileSrc.getPath(), "");

l1.add(path2);

} else {

pathList(f, fileSrc ,l1);

}

}

return l1;

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值