java查询某个文件夹下是否有同名文件,忽略文件后缀

/**
     * 遍历fileList
     *
     * @param fileList
     */
    private void getFileList(List<MultipartFile> fileList) throws IOException {
        for (MultipartFile multipartFile : fileList) {
            //获取文件名
            String fileName = multipartFile.getOriginalFilename();
            //某些符号得转义
            String[] strings = fileName.split("\\.");
            String name = strings[0];
            //查询用户
            User user = /**查询**/(name);
            //修改后的文件名
            Long longFileName = user.getId();
            String suffixName = fileName.substring(fileName.lastIndexOf('.'));
            logger.info("上传的文件名为==>>{},后缀名为==>>{}", longFileName, suffixName);
            //获取当前jar包所在路径,并且新建photo文件夹
            String photoPath = PathUtil.getJarPath() + "\\photo";

            logger.info("创建photo文件夹后的路径photoPath===>>>{}", photoPath);
            File photoFile = new File(photoPath);
            //检测是否存在目录
            if (photoFile.getParentFile() != null) {
                //新建文件夹
                photoFile.mkdirs();
            }
            //修改后的指定路径下的完整文件名
            String photoName = photoPath + "\\" + longFileName + suffixName;
            logger.info("修改后的指定路径下的完整文件名,photoName===>>>{}", photoName);
            //新文件名
            String newFileName = longFileName + suffixName;
            String photoUrl = "http://localhost:9999/image/" + newFileName;
            if (longFileName != null) {
                User u = selectById(longFileName);
                if (u != null) {
                    UpdateWrapper<UserDo> updateWrapper = new UpdateWrapper<>();
                    updateWrapper.eq("id", u.getId())
                            .set("photoUrl", photoUrl);
//                            .set("photoUrl", photoName);
                    //将图片url存入数据库
                    userMapper.update(null, updateWrapper);
                }
            }
// 调用下面的方法
            deleteFile(photoName);
            Boolean bBoolean = savePicFile(photoName, multipartFile);
        }
    }

下面这一段是获取上传文件夹路径下面的重名文件,忽略文件后缀名(比如上传一个人的照片,但是有多种格式,上传一个新的同名文件覆盖)

还有一些bug 可以再优化,可能会空指针

 private void deleteFile(String dir) {
        String[] split = dir.split("\\.");
        String substring = dir.substring(0, dir.lastIndexOf("\\"));
        File file = new File(substring);
        File[] files = file.listFiles();
        for (File f : files) {
            String[] sName = f.getName().substring(f.getName().lastIndexOf("\\.") + 1).split("\\.");
            String[] name = dir.substring(dir.lastIndexOf("\\") + 1).split("\\.");
            if (sName[0].equals(name[0])) {
                f.delete();
                break;
            }
        }
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值