在工作中遇到的优化问题:在Java开发中,处理文件下载时,尤其是压缩包附件,可能会遇到文件名重复的情况。重复文件名可能导致文件覆盖、数据丢失或系统异常,因此需要有效的解决方案。
处理Java下载压缩包附件时,文件名重复的问题。可以通过文件名重命名策略、哈希值生成、UUID生成、目录结构优化以及压缩包内文件重命名等方法,可以有效避免文件名冲突,确保文件下载的完整性和安全性。
实际解决方案:在相同的文件名后增加序号后缀
核心代码实现:
//记录每个原始文件名出现的次数
Map<String, Integer> fileNameCounter = new HashMap<>();
//将压缩包中的文件遍历
// 步骤1:获取原始文件名
String originalFileName = this.renameZipFile(file);
// 步骤2:获取已有计数
int count = fileNameCounter.getOrDefault(originalFileName, 0);
// 步骤3:生成唯一文件名
String uniqueFileName = count > 0 ? originalFileName.replaceAll("(\\.[^.]+)$", "(" + count + ")$1") : originalFileName;
// 步骤4:更新计数
fileNameCounter.put(originalFileName, count + 1);
7万+

被折叠的 条评论
为什么被折叠?



