业务问题案例
在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间。图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10这个10个文件夹下)没有文件夹的名字,后进行后续更新补充。(这里是一个缩小版的问题例子,1、2、4、5、9是没有下次文件夹,也是最终要得到的结果)
代码如下:
public class FioderNoTest {
public static void main(String[] args) {
File file = new File("E:\\********\\page1");
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
File[] array = file.listFiles();
for (File f1 : array) {
list1.add(f1.getName());//获取全部路径的名称,放入集合
for(File f3: f1.listFiles()){
if(f3.isDirectory()){//判断下一成文件夹是否含有(是)文件夹(组成的)
list2.add(f3.getParent().substring(18));//截取E:\\linkedin\\page1之后的字符串,
//将存在文件夹的路径字符串存入集合
}
}
}
//调用去重的方法
List<String> list4 = getUncontain(list1, list2);
//输出验证
for(String h : list4){
System.out.println(h+"--");
}
}
public static List<String> getUncontain(List<String> list1, List<String> list2){
List<String> list3 = new ArrayList<String>();
for(String str1 : list1){
if(!list2.contains(str1)){
System.out.println("List2里没有的是==>" + str1);
list3.add(str1);
}
}
for(String str2 : list2){
if(!list1.contains(str2)){
System.out.println("List1里没有的是==>" + str2);
list3.add(str2);
}
}
return list3;
}
}
望有帮助!!!!
我是mz新手:ZZHL