当前位置: 首页 > news >正文

解决”重复文件名重命名“问题【根据Word系统方式】

提示:工作中遇到的功能需求,在此记录,不喜勿喷!谢谢

文章目录

  • 前言
  • 一、需求分析
  • 二、需求实现


前言

最近工作中遇到的我认为有必要记录的需求实现,希望可以帮助到有同样需求的小伙伴们!


提示:以下是本篇文章正文内容,下面案例可供参考

一、需求分析

编写代码过程中,往往需要考虑校验数据唯一性。Word系统的重命名规则为:第一个文件 测试.jpg-》第二个文件 测试 -副本.jpg-》第三个文件 测试 -副本(1).jpg-》第四个文件 测试 -副本(2).jpg,依次类推。

二、需求实现

代码实现

代码如下(示例):

public Result<String> add(@RequestBody KfWangpan kfWangpan) {//获取入参中文件信息FileVo fileVo = kfWangpan.getFileVoList().get(0);//获取系统用户信息LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();//查询该用户该资源类型下所有文件记录List<KfWangpan> list = kfWangpanService.lambdaQuery().eq(KfWangpan::getResourceType, kfWangpan.getResourceType()).eq(KfWangpan::getCreateBy,user.getUsername()).list();//通过ArrayList收集重复文件名的数量ArrayList<String> strings = new ArrayList<>();//根据.分隔为两部分split[0]为文件名,split[1]为文件后缀名String[] split = fileVo.getResourceName().split("\\.");if (list.size()!=0) {//遍历文件记录,如果有该文件名,则随机生成UUIDfor (KfWangpan item : list) {if (item.getResourceName().split("\\.")[0].equals(split[0])||item.getResourceName().split("-")[0].equals(split[0])) {UUID uuid = UUID.randomUUID();strings.add(String.valueOf(uuid));}}}//遍历该文件名集合if (strings.size() == 1) {//数据库里有一条记录fileVo.setResourceName(split[0] + "-副本."+ split[1]);} else if (strings.size() >= 2) {//数据库里有两个以上的记录int count = strings.size() - 1;fileVo.setResourceName(split[0] + "-副本(" + count + ")."+split[1]);}kfWangpanService.add(kfWangpan);return Result.OK("添加成功!");}

http://www.lryc.cn/news/484936.html

相关文章:

  • 【PyTorch】PyTorch Geometric(PyG)安装指南:如何高效配置图神经网络环境
  • SolidWorks21装配体中一个零件无法改为线架图
  • 11.11机器学习_介绍和定义
  • 【代码审计】常见漏洞专项审计-业务逻辑漏洞审计
  • SpringBoot单体服务无感更新启动,动态检测端口号并动态更新
  • CSS基础知识04
  • python程序对服务器cpu和内存资源占用的管理。
  • java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“
  • 人工智能:塑造未来的工作与生活
  • RK3568笔记六十九: 事件回调处理之Libevent 简单使用
  • MySQL如何解决幻读?
  • Javascript_设计模式(二)
  • 时间同步服务器
  • react+hook+vite项目使用eletron打包成桌面应用+可以热更新
  • STM32 ADC --- DMA乒乓缓存
  • SpringCloud基础 入门级 学习SpringCloud 超详细(简单通俗易懂)
  • 【Windows 常用工具系列 20 -- MobaXterm 登录 WSL】
  • 【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题
  • UniApp的Vue3版本中H5配置代理的最佳方法
  • 深入了解Pod
  • 基于Spider异步爬虫框架+JS动态参数逆向+隧道代理+自定义中间件的猎聘招聘数据爬取
  • Spring 中的 BeanDefinitionParserDelegate 和 NamespaceHandler
  • BERT模型核心组件详解及其实现
  • 图论-代码随想录刷题记录[JAVA]
  • c#加载shellcode
  • HarmonyOS 开发环境搭建
  • 【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇
  • 深入理解 SQL_MODE 之 ANSI_QUOTES
  • 容器技术在持续集成与持续交付中的应用
  • 【嵌入式软件-STM32】OLED显示屏+调试方法