From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001
From: sws <15810472099@163.com>
Date: 星期六, 26 十一月 2022 16:12:02 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/helper/PathHelper.java |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 180 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/PathHelper.java b/src/main/java/com/lf/server/helper/PathHelper.java
new file mode 100644
index 0000000..c9216b3
--- /dev/null
+++ b/src/main/java/com/lf/server/helper/PathHelper.java
@@ -0,0 +1,180 @@
+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;
+
+/**
+ * 璺緞甯姪绫�
+ * @author WWW
+ */
+@Component
+public class PathHelper {
+    @Autowired
+    private PropertiesConfig config;
+
+    private static int downloadPath = 1;
+
+    private static int uploadPath = 1;
+
+    private static int sharePath = 1;
+
+    private final static double D85 = 85;
+
+    private final static Log log = LogFactory.getLog(PathHelper.class);
+
+    public PropertiesConfig getConfig() {
+        return config;
+    }
+
+    public static int getDownloadPath() {
+        return downloadPath;
+    }
+
+    public static int getUploadPath() {
+        return uploadPath;
+    }
+
+    public static int getSharePath() {
+        return sharePath;
+    }
+
+    /**
+     * 鍒濆鍖�
+     */
+    public void init() {
+        downloadPath = getSubPath(config.getDownloadPath(), downloadPath);
+        uploadPath = getSubPath(config.getUploadPath(), uploadPath);
+        sharePath = getSubPath(config.getSharePath(), sharePath);
+    }
+
+    private static int getSubPath(String parentPath, int subPath) {
+        while (true) {
+            String path = parentPath + File.separator + subPath;
+
+            File file = new File(path);
+            if (!file.exists() && !file.isDirectory()) {
+                file.mkdirs();
+                return subPath;
+            }
+
+            File[] files = file.listFiles();
+            if (null == files || files.length < SettingData.MAX_FILES) {
+                return subPath;
+            }
+
+            subPath++;
+        }
+    }
+
+    /**
+     * 鑾峰彇涓嬭浇瀹屾暣鐩綍
+     */
+    public String getDownloadFullPath() {
+        downloadPath = getSubPath(config.getDownloadPath(), downloadPath);
+
+        return config.getDownloadPath() + File.separator + downloadPath;
+    }
+
+    /**
+     * 鑾峰彇涓婁紶瀹屾暣鐩綍
+     */
+    public String getUploadFullPath() {
+        uploadPath = getSubPath(config.getUploadPath(), uploadPath);
+
+        return config.getUploadPath() + File.separator + uploadPath;
+    }
+
+    /**
+     * 鑾峰彇鍏变韩瀹屾暣鐩綍
+     */
+    public String getShareFullPath() {
+        sharePath = getSubPath(config.getSharePath(), sharePath);
+
+        return config.getSharePath() + File.separator + sharePath;
+    }
+
+    /**
+     * 鑾峰彇涓存椂璺緞
+     */
+    public String getTempPath() {
+        String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date());
+        String path = config.getTempPath() + File.separator + tempName;
+
+        File file = new File(path);
+        if (!file.exists() && !file.isDirectory()) {
+            file.mkdirs();
+        }
+
+        deleteOldPath(config.getTempPath());
+
+        return path;
+    }
+
+    /**
+     * 鑾峰彇涓存椂璺緞
+     */
+    public String getTempPath(String subPath) {
+        if (!StringHelper.isEmpty(subPath)) {
+            String path = config.getTempPath() + File.separator + subPath;
+
+            File file = new File(path);
+            if (file.exists() && file.isDirectory()) {
+                return path;
+            }
+        }
+
+        deleteOldPath(config.getTempPath());
+
+        return getTempPath();
+    }
+
+    /**
+     * 鑾峰彇涓存椂璺緞鍚嶇О
+     */
+    public String getTempPathName() {
+        String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date());
+        String path = config.getTempPath() + File.separator + tempName;
+
+        File file = new File(path);
+        if (!file.exists() && !file.isDirectory()) {
+            file.mkdirs();
+        }
+
+        deleteOldPath(config.getTempPath());
+
+        return tempName;
+    }
+
+    /**
+     * 鍒犻櫎鏃ц矾寰�
+     */
+    public void deleteOldPath(String tempPath) {
+        try {
+            double ran = Math.random() * 99;
+            if (ran < D85) {
+                return;
+            }
+
+            File file = new File(tempPath);
+            String str = StringHelper.YMD2_FORMAT.format(new Date());
+
+            File[] files = file.listFiles();
+            for (File f : files) {
+                if (f.getPath().contains(str)) {
+                    continue;
+                }
+
+                FileHelper.deleteFiles(f);
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+        }
+    }
+}

--
Gitblit v1.9.3