zoukankan      html  css  js  c++  java
  • java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法

     

    业务问题案例

    在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间。图给的是文件路径,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

  • 相关阅读:
    面试题三:MySQL
    面试题二:JVM
    面试题一:类加载
    RabbitMq脑裂问题
    数据结构之树学习内容
    JVM全面分析之垃圾收集器
    JVM全面分析之垃圾回收的相关概念
    JVM全面分析之垃圾回收算法
    JVM全面分析之String
    JVM全面分析之执行引擎
  • 原文地址:https://www.cnblogs.com/zhangheliang/p/7565622.html
Copyright © 2011-2022 走看看