java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法

摘要:
商业问题案例公司遇到的一个问题被认为很小,很容易解决,但花了一个下午。该图显示了文件路径。第1页下有10个文件夹,每个文件夹都有一个文件夹或文件。需要获取第1页下不存在的文件夹的名称,然后进行后续更新和补充。list1.contains){System.out.println;list3.add;}}返回列表3;}}我希望你能帮助我!!!!

 

业务问题案例

在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间。图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10这个10个文件夹下)没有文件夹的名字,后进行后续更新补充。(这里是一个缩小版的问题例子,1、2、4、5、9是没有下次文件夹,也是最终要得到的结果)

java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法第1张

java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法第2张

 

代码如下:

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

免责声明:文章转载自《java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇weblogic-部署web应用Encrypt Decrypt下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

powerdesigner与数据库之间的连接

useUnicode=true&characterEncoding=UT8&serverTimezone=UTC 9JDBCdriverjarfiles:指定连接的jar包路径。测试连接。连接成功。进入工作区。3.2 3.2powerdesigner连接到oracle。其原理与连接MySQL的原理相同。在已安装的oracle下找到ojdbc1...

甲骨文ARM架构云服务器部署宝塔+.net 5.0

前言前段时间,甲骨文推出了一款采用ARM架构的免费服务器,可以申请永久免费的4核、24GB内存、4G带宽,非常棒。然而,由于ARM架构的CPU。例如,编译和安装MySQL 5.7是可以的,所以不需要麻烦。创建后,ssh被连接并切换到根帐户sudo-i II。安装宝塔。创建服务器。更新包并安装BBR后,您可以使用官方脚本yu_install-wget&...

wifi密码暴力破解

转自:Python最新暴力破解WiFi,攻破所有密码限制,最强破解!...

socket网络编程(二)—— 实现持续发送

exit(exit_FAILURE);}//初始化套接字元素structsockaddr_inserver_addr;intserver_len=大小(server_addr);内存集(&amp;server_len);0){ERR_EXIT(“listenclientfail”);client_len);buffer);}//关闭套接字(m_con...

H3C系列之三层交换机系统版本升级

本文中涉及的硬件和软件交换机:H3CS3600-28TP-SItftp软件:tftpd32软件升级文件:S36SI_ E-CMW310-R1702P44.zip升级文件描述如下:S36SI_ E-CMW310-R1702P44-S168.bin168-bitSSH加密应用程序S3600_ V606.btmbootrom(downloadedynetworkp...

mac下vscode插件位置

1、 位置:Mac:User/(您的用户名)/vscode/extensions II下vscode插件的存储位置。搜索步骤:以我的mac为例,打开查找器,单击远程CD,单击转到上面的文件夹,单击macintosh HD,单击用户(或用户),单击mymac,单击。vscode(.vscode是一个隐藏文件。如果默认情况下不显示,请按住ctrl+shift+....