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

发布时间:2023年12月29日

一个常用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;
}

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

文章来源:https://blog.csdn.net/qq_37181642/article/details/135290187
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。