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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM