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