package org.jeecg;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @Description: TODO
 * @author: scott
 * @date: 2022年05月10日 14:02
 */
public class TestMain {

    public static void main(String[] args) {

        //初始目录
        File dir = new File("D:\\images\\temp");
        Date beginDate = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String beginDateStr = simpleDateFormat.format(beginDate);
        System.out.println("开始时间：" + beginDateStr);
        printDirByRecursive(dir, 2);
        //searchDir(dir);
        Date endDate = new Date();
        String endDateStr = simpleDateFormat.format(endDate);
        System.out.println("结束时间：" + endDateStr);
//        // 请求地址
//        String url = "https://api.boot.jeecg.com/sys/user/list";
//        // 请求 Header （用于传递Token）
//        HttpHeaders headers = getHeaders();
//        // 请求方式是 GET 代表获取数据
//        HttpMethod method = HttpMethod.GET;
//
//        System.out.println("请求地址：" + url);
//        System.out.println("请求方式：" + method);
//
//        // 利用 RestUtil 请求该url
//        ResponseEntity<JSONObject> result = RestUtil.request(url, method, headers, null, null, JSONObject.class);
//        if (result != null && result.getBody() != null) {
//            System.out.println("返回结果：" + result.getBody().toJSONString());
//        } else {
//            System.out.println("查询失败");
//        }
    }
    private static HttpHeaders getHeaders() {
        String token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.50h-g6INOZRVnznExiawFb1U6PPjcVVA4POeYRA5a5Q";
        System.out.println("请求Token：" + token);

        HttpHeaders headers = new HttpHeaders();
        String mediaType = MediaType.APPLICATION_JSON_VALUE;
        headers.setContentType(MediaType.parseMediaType(mediaType));
        headers.set("Accept", mediaType);
        headers.set("X-Access-Token", token);
        return headers;
    }



    /**
     * 遍历文件夹（递归）
     *
     * @param dir
     * @param level
     */
    public static void printDirByRecursive(File dir, int level) {
        //System.out.println(dir.getAbsolutePath());
        //输出层次数
//        for (int i = 0; i < level; i++) {
//            System.out.print("-");
//        }
        //获取这个目录下所有的子文件和子目录的数组。
        Map map=new HashMap<>();
        List list = new ArrayList<>();
        File[] files = dir.listFiles();
        String a=null;
        //遍历这个数组，取出每个File对象
        if (files != null) {
            for (File f : files) {

                //判断这个File是否是一个文件，是：
                if (f.isFile() ) {

                    a = f.getParentFile().getName();
//                    System.out.println(f.toString().substring(10));
                    if(a.equals(f.getParentFile().getName())&& !f.getParentFile().getName().equals("desktop.ini")){
                        list.add(f.toString().substring(10));
                    }
                } else {//否则就是一个目录，继续递归
                    //递归调用
                    printDirByRecursive(f, level);

                }

            }
            if(list.size()>0){

                System.out.println(a);
                System.out.println(StringUtils.join(list,","));

            }

        }
    }

}
