管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-10-19 a379ac818c149b682f70cf8ebc97a3979da17291
src/main/java/com/lf/server/helper/PathHelper.java
@@ -1,10 +1,14 @@
package com.lf.server.helper;
import com.lf.server.config.PropertiesConfig;
import com.lf.server.entity.all.SettingData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.Date;
/**
 * 路径帮助类
@@ -13,9 +17,7 @@
@Component
public class PathHelper {
    @Autowired
    private PropertiesConfig propertiesConfig;
    private static int MAX_FILES = 2000;
    private PropertiesConfig config;
    private static int importPath = 1;
@@ -25,14 +27,38 @@
    private static int sharePath = 1;
    private final static double D90 = 90;
    private final static Log log = LogFactory.getLog(PathHelper.class);
    public PropertiesConfig getConfig() {
        return config;
    }
    public static int getImportPath() {
        return importPath;
    }
    public static int getExportPath() {
        return exportPath;
    }
    public static int getUploadPath() {
        return uploadPath;
    }
    public static int getSharePath() {
        return sharePath;
    }
    /**
     * 初始化
     */
    public void init() {
        importPath = getSubPath(propertiesConfig.getImportPath(), importPath);
        exportPath = getSubPath(propertiesConfig.getExportPath(), exportPath);
        uploadPath = getSubPath(propertiesConfig.getUploadPath(), uploadPath);
        sharePath = getSubPath(propertiesConfig.getSharePath(), sharePath);
        importPath = getSubPath(config.getImportPath(), importPath);
        exportPath = getSubPath(config.getExportPath(), exportPath);
        uploadPath = getSubPath(config.getUploadPath(), uploadPath);
        sharePath = getSubPath(config.getSharePath(), sharePath);
    }
    private static int getSubPath(String parentPath, int subPath) {
@@ -46,7 +72,7 @@
            }
            File[] files = file.listFiles();
            if (files.length < MAX_FILES) {
            if (files.length < SettingData.MAX_FILES) {
                return subPath;
            }
@@ -56,45 +82,100 @@
    /**
     * 获取导入目录
     *
     * @return
     */
    public String getImportPath() {
        importPath = getSubPath(propertiesConfig.getImportPath(), importPath);
    public String getImportFullPath() {
        importPath = getSubPath(config.getImportPath(), importPath);
        return propertiesConfig.getImportPath() + File.separator + importPath;
        return config.getImportPath() + File.separator + importPath;
    }
    /**
     * 获取出图目录
     *
     * @return
     */
    public String getExportPath() {
        exportPath = getSubPath(propertiesConfig.getExportPath(), exportPath);
    public String getExportFullPath() {
        exportPath = getSubPath(config.getExportPath(), exportPath);
        return propertiesConfig.getExportPath() + File.separator + exportPath;
        return config.getExportPath() + File.separator + exportPath;
    }
    /**
     * 获取上传目录
     *
     * @return
     */
    public String getUploadPath() {
        uploadPath = getSubPath(propertiesConfig.getUploadPath(), uploadPath);
    public String getUploadFullPath() {
        uploadPath = getSubPath(config.getUploadPath(), uploadPath);
        return propertiesConfig.getUploadPath() + File.separator + uploadPath;
        return config.getUploadPath() + File.separator + uploadPath;
    }
    /**
     * 获取共享目录
     *
     * @return
     */
    public String getSharePath() {
        sharePath = getSubPath(propertiesConfig.getSharePath(), sharePath);
    public String getShareFullPath() {
        sharePath = getSubPath(config.getSharePath(), sharePath);
        return propertiesConfig.getSharePath() + File.separator + sharePath;
        return config.getSharePath() + File.separator + sharePath;
    }
    /**
     * 获取临时路径
     */
    public String getTempPath() {
        String tempName = StringHelper.YMD_HM_FORMAT.format(new Date());
        String tempPath = config.getTempPath();
        String path = tempPath + File.separator + tempName;
        File file = new File(path);
        if (!file.exists() && !file.isDirectory()) {
            file.mkdirs();
        }
        double ran = Math.random() * 99;
        if (ran > D90) {
            deleteOldPath(tempPath);
        }
        return path;
    }
    /**
     * 删除旧路径
     */
    public void deleteOldPath(String tempPath) {
        try {
            File file = new File(tempPath);
            String str = StringHelper.YMD__FORMAT.format(new Date());
            File[] files = file.listFiles();
            for (File f : files) {
                if (f.getPath().indexOf(str) > -1) {
                    continue;
                }
                deleteFiles(f);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage() + ex.getStackTrace() + "\n");
        }
    }
    /**
     * 级联删除文件
     */
    public void deleteFiles(File file) {
        if (file == null || !file.exists()) {
            return;
        }
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File f : files) {
                if (f.isDirectory()) {
                    deleteFiles(f);
                } else {
                    f.delete();
                }
            }
        }
        file.delete();
    }
}