Files
contract-manager/common/src/main/java/com/ecep/contract/util/FileUtils.java
2025-10-11 09:21:14 +08:00

100 lines
2.8 KiB
Java

package com.ecep.contract.util;
import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileUtils {
public final static String PDF = ".pdf";
public final static String DOC = ".doc";
public final static String DOCX = ".docx";
public final static String XLS = ".xls";
public final static String XLSX = ".xlsx";
public final static String PNG = ".png";
public final static String JPG = ".jpg";
public final static String JPEG = ".jpeg";
public final static String JSON = ".json";
public final static String FILE_DB_THUMBS = "Thumbs.db";
public final static String FILE_DB_JSON = "db.json";
public final static String FILE_BLACK_LIST_JSON = "black_list.json";
public final static String FILE_B1001_JSON = "b1001.json";
/**
* 检查文件是否符合后缀要求
*
* @param name 文件名
* @param fileExtensions 后缀
*/
public static boolean withExtensions(String name, String... fileExtensions) {
for (String fn : fileExtensions) {
if (name.endsWith(fn)) {
return true;
}
}
return false;
}
/**
* 返回 district 中关于省份的部门zi
*
* @param district 地区
* @return 省份名称
*/
public static String getParentPrefixByDistrict(String district) {
int indexOf = district.indexOf("");
if (indexOf != -1) {
return district.substring(0, indexOf);
}
indexOf = district.indexOf("自治区");
if (indexOf != -1) {
return district.substring(0, 2);
}
indexOf = district.indexOf("");
if (indexOf != -1) {
return district.substring(0, indexOf);
}
return null;
}
public static String escapeFileName(String fileName) {
String patternStr = "[\\\\/:*?\"<>|]";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(fileName);
return matcher.replaceAll("_");
}
public static boolean isHiddenFile(File file) {
String fileName = file.getName();
if (fileName.equals(FILE_DB_THUMBS)) {
return true;
}
return fileName.startsWith("~$");
}
/**
* 检查文件是否为可编辑文件
*
* @param fileName 文件名
* @return 是否为可编辑文件
*/
public static boolean isEditableFile(String fileName) {
return withExtensions(fileName,
XLS, XLSX,
DOC, DOCX);
}
/**
* 检查文件是否为归档文件
*
* @param fileName 文件名
* @return 是否为归档文件
*/
public static boolean isArchiveFile(String fileName) {
return withExtensions(fileName,
PNG, PDF,
JPG, JPEG);
}
}