背景
目前许多项目都要在本地生成文件,一般都要根据 文件的根目录和自定义的文件名称拼接出文件的绝对路径。下面提供一个工具方法供参考
public class FileUtil { private static final DateFormat df = new SimpleDateFormat("yyyyMMdd"); private static final DateFormat df1 = new SimpleDateFormat("HHmmss"); //根据文件名称,文件根路径按照日期生成存储路径 public static String generateFilePath(String fileName, String rootFolder) { if (StringUtils.isBlank(fileName) || StringUtils.isBlank(rootFolder)) { throw new RuntimeException("fileName and rootFolder cannot be null"); } Date currentDate = new Date(); Calendar c = Calendar.getInstance(); c.setTime(currentDate); String fileSystemName = ""; String uuid = UUID.randomUUID().toString().replaceAll("-", ""); StringBuilder fileNameBuilder = new StringBuilder(fileName); fileSystemName = fileNameBuilder.insert(fileName.indexOf("."), "_" + uuid).insert(fileName.indexOf("."), "_" + df1.format(currentDate)).toString(); StringBuffer filePath = new StringBuffer(); filePath.append(rootFolder).append(File.separator).append(df.format(currentDate)); File _folder = new File(filePath.toString()); if (!_folder.exists()) { _folder.mkdir(); } filePath.append(File.separator).append(c.get(Calendar.HOUR_OF_DAY)); _folder = new File(filePath.toString()); if (!_folder.exists()) { _folder.mkdir(); } filePath.append(File.separator).append(fileSystemName); return filePath.toString(); } }