给定目录path,递归返回目录下所有文件列表

package com.hand.bxtadmin.infra.utils;

import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;

import java.io.File;

/**
 * @author : maqingbo
 * @email : [email protected]
 * @date : 2023/11/24:0:35  周五
 */
public class FileUtils {

    /**
     * 返回目录下的所有子级
     * @param file isDirectory
     * @return
     */
    public static JSONArray getFileTree(File file) {
        return getChildren(file.listFiles());
    }

    private static JSONArray getChildren(File[] fileList) {
        if (fileList == null) {
            return new JSONArray();
        }
        JSONArray children = new JSONArray();
        for (File file : fileList) {
            JSONObject child = new JSONObject();
            child.put("name", file.getName());
            child.put("type", file.isFile() ? "file" : "directory");
            child.put("lastModifiedTime", FileUtil.lastModifiedTime(file));
            if (file.isFile()) {
                child.put("size", FileUtil.size(file));
                child.put("mimeType", FileUtil.getMimeType(file.getAbsolutePath()));
            }
            if (file.isDirectory()) {
                child.put("children", getChildren(file.listFiles()));
            }
            children.add(child);
        }
        return children;
    }
}

你可能感兴趣的:(java,前端,服务器)