Java-File:遍历目录下的所有文件

一个常用file工具类,用来扫描给定目录下的所有文件,返回对应文件的全路径。

public static ArrayList<Object> scanFilesWithSubPackage(String path) {
  ArrayList<Object> scanFiles = new ArrayList<Object>();
  LinkedList<File> queueFiles = new LinkedList<File>();
  File directory = new File(path);
  if (!directory.isDirectory()) {
      return null;
  } else {
      //首先将第一层目录扫描一遍
      File[] files = directory.listFiles();
      //遍历扫出的文件数组,如果是文件夹,将其放入到linkedList中稍后处理
      for (int i = 0; i < files.length; i++) {
          if (files[i].isDirectory()) {
              queueFiles.add(files[i]);
          } else {
              //暂时将文件名放入scanFiles中
              scanFiles.add(files[i].getAbsolutePath());
          }
      }
      //如果linkedList非空遍历linkedList
      while (!queueFiles.isEmpty()) {
          //移出linkedList中的第一个
          File headDirectory = queueFiles.removeFirst();
          File[] currentFiles = headDirectory.listFiles();
          for (int j = 0; j < currentFiles.length; j++) {
              if (currentFiles[j].isDirectory()) {
                  //如果仍然是文件夹,将其放入linkedList中
                  queueFiles.add(currentFiles[j]);
              } else {
                  scanFiles.add(currentFiles[j].getAbsolutePath());
              }

          }
      }
  }
  return scanFiles;
}

返回结果示例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xhaoDream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值