package com.cloudroam.module.file; import org.springframework.util.DigestUtils; import org.springframework.util.unit.DataSize; import java.io.File; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Path; import java.util.UUID; /** * @author * @author * 文件工具类 */ public class FileUtil { private FileUtil() {} public static FileSystem getDefaultFileSystem() { return FileSystems.getDefault(); } public static boolean isAbsolute(String str) { Path path = getDefaultFileSystem().getPath(str); return path.isAbsolute(); } @SuppressWarnings("ResultOfMethodCallIgnored") public static void initStoreDir(String dir) { String absDir; if (isAbsolute(dir)) { absDir = dir; } else { String cmd = getCmd(); Path path = getDefaultFileSystem().getPath(cmd, dir); absDir = path.toAbsolutePath().toString(); } File file = new File(absDir); if (!file.exists()) { file.mkdirs(); } } public static String getCmd() { return System.getProperty("user.dir"); } public static String getFileAbsolutePath(String dir, String filename) { if (isAbsolute(dir)) { return getDefaultFileSystem() .getPath(dir, filename) .toAbsolutePath().toString(); } else { return getDefaultFileSystem() .getPath(getCmd(), dir, filename) .toAbsolutePath().toString(); } } public static String getFileExt(String filename) { int index = filename.lastIndexOf('.'); return filename.substring(index); } public static String getFileMD5(byte[] bytes) { return DigestUtils.md5DigestAsHex(bytes); } public static Long parseSize(String size) { DataSize singleLimitData = DataSize.parse(size); return singleLimitData.toBytes(); } public static String getNewFilename(String ext) { String uuid = UUID.randomUUID().toString().replace("-", ""); return uuid + ext; } }