Java获取路径下的所有文件

介绍

在Java开发中,经常会遇到需要获取指定路径下的所有文件的需求。本文将介绍如何使用Java代码来实现这一功能。我们将使用递归方法来遍历目录下的所有文件,并将文件路径存储到一个列表中。

流程

下面是获取路径下所有文件的流程图:

journey
    title 获取路径下所有文件的流程图

    section 输入
        开始 -> 用户指定目录
    end

    section 输出
        结束 -> 输出所有文件路径的列表
    end

    section 处理
        用户指定目录 -> 遍历目录下的文件和文件夹
        遍历目录下的文件和文件夹 -> 判断是否为文件
        是 -> 将文件路径添加到列表中
        否 -> 递归调用遍历目录下的文件和文件夹
    end

代码实现

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileUtil {

    /**
     * 获取路径下的所有文件
     * @param path 路径
     * @return 文件列表
     */
    public static List<String> getAllFiles(String path) {
        List<String> fileList = new ArrayList<>();
        File root = new File(path);
        getAllFiles(root, fileList);
        return fileList;
    }

    /**
     * 递归获取路径下的所有文件
     * @param root 目录
     * @param fileList 文件列表
     */
    private static void getAllFiles(File root, List<String> fileList) {
        File[] files = root.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isFile()) {
                    fileList.add(file.getAbsolutePath());
                } else if (file.isDirectory()) {
                    getAllFiles(file, fileList);
                }
            }
        }
    }
}

代码解析:

  • getAllFiles方法是对外提供的获取路径下所有文件的入口方法。首先创建一个空的文件列表,然后根据指定的路径创建一个File对象,并调用getAllFiles(File root, List<String> fileList)方法进行递归遍历。
  • getAllFiles(File root, List<String> fileList)方法是递归的核心方法。首先获取目录下的所有文件和文件夹,然后遍历每个文件和文件夹。如果是文件,则将文件的绝对路径添加到文件列表中;如果是文件夹,则递归调用getAllFiles方法,直到遍历完所有文件和文件夹。

使用示例

下面是一个使用示例:

import java.util.List;

public class Main {

    public static void main(String[] args) {
        String path = "/path/to/directory"; // 指定路径
        List<String> fileList = FileUtil.getAllFiles(path);
        for (String filePath : fileList) {
            System.out.println(filePath);
        }
    }
}

代码解析:

  • Main类的main方法中,首先指定一个路径,然后调用FileUtil.getAllFiles方法获取该路径下的所有文件,并将结果存储到fileList中。
  • 最后,通过循环遍历fileList,输出每个文件的路径。

类图

下面是类图:

classDiagram
    class FileUtil {
        +getAllFiles(String path): List<String>
        -getAllFiles(File root, List<String> fileList)
    }
    class Main {
        +main(String[] args): void
    }
    FileUtil --> Main

总结

本文介绍了如何使用Java代码来实现获取指定路径下的所有文件的功能。通过递归遍历目录下的文件和文件夹,我们可以将文件的路径存储到一个列表中,方便后续处理。希望本文对刚入行的小白有所帮助。