All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nbsaas.boot.generator.utils.FileUtil Maven / Gradle / Ivy

There is a newer version: 1.1.10-2024
Show newest version
/*
 *
 *  * 版权声明和许可协议
 *  *
 *  * 版权所有 (c) 2023 纽百特®
 *  * 版权所有,保留所有权利
 *  *
 *  * 本软件使用 MIT 许可协议进行许可,详情请参阅:
 *  *
 *  *   https://opensource.org/licenses/MIT
 *  *
 *  * 更多信息,请访问我们的网站:
 *  *
 *  *   http://www.nbsaas.com
 *  *
 *  * 纽百特® 是西安纽百特科技有限责任公司的注册商标,未经授权不得使用。
 *
 */

package com.nbsaas.boot.generator.utils;


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

/**
 * 文件操作工具类
 */
public class FileUtil {

    /**
     * 创建文件
     *
     * @param basePath 基础文件夹
     * @param fileName 文件名
     * @return 被创建的文件
     * @throws IOException IO异常
     */
    public static File createDirAndFile(String basePath, String fileName) throws IOException {
        File file = new File(basePath, fileName);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        file.createNewFile();

        return file;
    }

    public static void createDir(String path) {
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdirs();
        }
    }

    public static File createFile(String path) throws IOException {
        File file = new File(path);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
            // throw new RuntimeException("folder no found, please create the parent folder first");
        }
        file.createNewFile();
        return file;
    }

    /**
     * 查询文件夹中的所有文件列表
     *
     * @param folderFile 文件见/文件
     * @return 文件列表
     */
    public static List getFileList(File folderFile) {
        List allFileList = new ArrayList<>();
        if (!folderFile.isDirectory()) {
            // 入参是一个文件,直接返回
            allFileList.add(folderFile);
            return allFileList;
        }
        // 入参是一个文件夹,需要递归遍历
        _getAllFile(folderFile, allFileList);
        return allFileList;

    }

    private static void _getAllFile(File file, List allFileList) {

        // Terminator
        File[] innerFiles = file.listFiles();
        if (innerFiles == null || innerFiles.length == 0) {
            return;
        }
        // Process
        for (File innerFile : innerFiles) {
            // Process
            if (innerFile.isDirectory()) {
                // 文件夹
                _getAllFile(innerFile, allFileList);
            } else {
                // 文件
                allFileList.add(innerFile);
            }
        }
    }

    /**
     * 删除文件夹所有文件
     *
     * @param path 路径
     */
    public static void delDir(String path) {
        File file = new File(path);
        if (!file.exists()) {
            return;
        }
        _delDir(file);
    }

    private static void _delDir(File folder) {
        // Terminator

        // Process
        File[] files = folder.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                // Drull dwon
                _delDir(file);
            } else {
                file.delete();
            }
        }

        folder.delete();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy