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 exportPath = 1;
|
|
private static int uploadPath = 1;
|
|
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 getDownloadPath() {
|
return downloadPath;
|
}
|
|
public static int getExportPath() {
|
return exportPath;
|
}
|
|
public static int getUploadPath() {
|
return uploadPath;
|
}
|
|
public static int getSharePath() {
|
return sharePath;
|
}
|
|
/**
|
* 初始化
|
*/
|
public void init() {
|
downloadPath = getSubPath(config.getDownloadPath(), downloadPath);
|
exportPath = getSubPath(config.getExportPath(), exportPath);
|
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 (files.length < SettingData.MAX_FILES) {
|
return subPath;
|
}
|
|
subPath++;
|
}
|
}
|
|
/**
|
* 获取导入目录
|
*/
|
public String getImportFullPath() {
|
downloadPath = getSubPath(config.getDownloadPath(), downloadPath);
|
|
return config.getDownloadPath() + File.separator + downloadPath;
|
}
|
|
/**
|
* 获取出图目录
|
*/
|
public String getExportFullPath() {
|
exportPath = getSubPath(config.getExportPath(), exportPath);
|
|
return config.getExportPath() + File.separator + exportPath;
|
}
|
|
/**
|
* 获取上传目录
|
*/
|
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(int id) {
|
String tempName = StringHelper.YMD__FORMAT.format(new Date());
|
String tempPath = config.getTempPath();
|
String path = tempPath + File.separator + tempName + id;
|
|
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);
|
}
|
}
|
|
/**
|
* 级联删除文件
|
*/
|
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();
|
}
|
}
|