修改文件(批量)名

网上下载的资料,对文件加上了前后缀,影响查看和列表视图,示例Java代码处理文件夹下去前后缀的代码、或指定文件去前后缀

@Service
@Slf4j
public class UpdateFileServiceImpl implements UpdateFileService {/*** 文件路径,截断文件名前后缀** @param req*/@Overridepublic void updateFileName(UpdateFileNameReq req) {int cores = Runtime.getRuntime().availableProcessors();log.info("核心线程数:{}" , cores);// 判断文件路径是否存在String filePath = req.getFilePath();File file = new File(filePath);boolean directoryFlag = file.isDirectory();if (!file.exists() && directoryFlag) {log.error("路径不存在!");return;}if (!file.exists() && !directoryFlag) {log.error("文件不存在!");return;}if (file.isDirectory()) { // 文件夹,遍历文件下所有符合前后缀的文件并处理File[] files = file.listFiles();for (File f : files) {log.info("文件名称:{}", f.getName());updateFileName4Single(req, f, directoryFlag);}} else { // 文件updateFileName4Single(req, file, directoryFlag);}}private void updateFileName4Single(UpdateFileNameReq req, File file, boolean directoryFlag) {String fileName = file.getName();boolean modified = false;log.info("待截断的文件名: {}", fileName);if (StringUtils.isNotEmpty(req.getSubPrefix()) && fileName.contains(req.getSubPrefix())) {log.info("截断前缀后的文件名: {}", fileName);fileName = fileName.substring(req.getSubPrefix().length(), fileName.length());modified = true;}if (StringUtils.isNotEmpty(req.getSubPostfix()) && fileName.contains(req.getSubPostfix())) {int lastIndexOfDot = fileName.lastIndexOf(".");String postfix = fileName.substring(lastIndexOfDot, fileName.length());fileName = fileName.substring(0, fileName.indexOf(req.getSubPostfix()));fileName = fileName + postfix;log.info("截断后缀之后的文件名:" + fileName);modified = true;}if (!modified) {log.info("文件名无须变化!");} else {if (!directoryFlag) {String reName = req.getFilePath().substring(0, req.getFilePath().lastIndexOf(File.separator)) + File.separator + fileName;log.info("文件截断之后的文件路径及文件名:" + reName);file.renameTo(new File(reName));} else {String reName = req.getFilePath() + File.separator + fileName;log.info("文件夹下的文件截断之后的文件路径及文件名:" + reName);file.renameTo(new File(reName));}}}
}

代码仅在Windows操作系统进行过测试,实现了文件夹下符合条件的文件更名和文件更名!

自己试下,小例子

    public static void main(String[] args) throws Exception {// 创建文件夹String filePath = "D:" + File.separator + "test";File file = new File(filePath);if (!file.exists() && !file.isDirectory()) {file.mkdir();}// 构造测试数据String prefix = "20221216";String postfix = ".txt";for (int i = 0; i < 10; i++) {char c = RandomUtil.randomChinese();new File(filePath + File.separator + prefix + c + postfix).createNewFile();}// 修改文件名,注意文件的位置if (!file.isDirectory())return;File[] files = file.listFiles();for (int i = 0; i < files.length; i++) {File tmp = files[i];System.err.println("文件名:" + tmp.getName());// 修改文件名(指定路径下)tmp.renameTo(new File(filePath + File.separator + i + postfix));}// 打印文件夹下所有文件名称(全称带后缀)printFileName(filePath);}private static void printFileName(String filePath) {File[] files = new File(filePath).listFiles();for (int i = 0; i < files.length; i++) {System.err.println("文件名:" + files[i].getName());}}

Java批量修改文件名相关推荐

  1. java修改服务器文件名,批量修改文件名 java代码

    批量修改文件名 java代码 [2021-02-03 13:40:55]  简介: php实现批量修改文件名称的方法:首先使用函数[rename]实现,代码为[$path = pathinfo($cu ...

  2. 批量修改文件名(Java)

    批量修改文件名(Java) ​ 最近领导给了个任务,叫我验证一下大量的图片文件,将图片放到服务器上.图片在数据库里的路径基本全是*/.JPG, 而具体的图片文件名称有"jpg".& ...

  3. windows bat 批量修改文件名。不改变后缀

    windows bat 批量修改文件名.不改变后缀 @echo off setlocal enabledelayedexpansion for %%x in (*.java) do ( rename ...

  4. 文件批量重命名工具,批量修改文件名的实现思路

    在工作中可能会遇到文件数据成果已经制作完成后,遇到文件命名规则变更,需要对大量文件重命名,甚至修改目录结构的.本文介绍利用FME实现文件批量重命名的解决方法. 因为工作实际情况各不相同,文件重命名规则 ...

  5. 批量修改文件名SaveFileUtil

    批量修改文件名 package com.zdxf.common;/*** @Author: zj* @Date: 2023/3/21 0021 18:17* @Description:*/ impor ...

  6. python批量读取dat文件_python编写Windows环境下批量修改文件名

    在日常编程工作中我们经常需要对文件进行操作,而文件一般都是由文件名和扩展名组成的.比如我们经常需要把.dat 格式 转化成 .txt格式,把png改成jgp格式等等.这里我们就教大家如何利用PYTHO ...

  7. linux下批量修改文件名精彩解答案例分享

    ######################################################### #linux下批量修改文件名精彩解答案例分享 #date:21:34 2011-11 ...

  8. 用shell批量修改文件名

    在一个文件夹中如果文件名有固定形式,而希望实现批量修改文件名时,可以使用shell脚本 代码如下 将文件名中的a替换成b for i in *.txt; do mv $i  `echo $i | se ...

  9. python 修改文件名_【学习分享】利用python批量修改文件名

    1 前言 分享一个利用python批量修改文件名的方法,我们以前分享过用DOS命令来批量修改文件名,但是如果要修改多个文件夹内的文件名,用DOS命令就不好处理了,我们就来分享一下如何用python处理 ...

最新文章

  1. Cocoa pods的安装
  2. 3D目标检测深度学习方法数据预处理综述
  3. 短短的 RESTful API 设计规范
  4. java操作跨页的word cell,利用itext 生成pdf,处理cell 跨页问题 [转]
  5. 微信小程序 = 滚动页面
  6. IOS开发-地图 (mapkit)实验
  7. 有没有测试水泥稳定性的软件,水泥稳定碎石土7天无侧限抗压强度制件(参考模板)...
  8. 雷蛇鼠标宏文件_《硬事要说34》稳接曼巴的旗?雷蛇巴塞利斯蛇[终极版]解读...
  9. linux驱动开发---并发控制
  10. 人脸识别技术原理与工程实践
  11. cf813C(bfs)
  12. python写入日志文件时日志内容重复写入
  13. ERROR 1290 (HY000): The MySQL server is running withnbs
  14. 转载--柯尔莫哥洛夫
  15. 在Windows使用mingw32编译opencv
  16. 《计算智能导论》下载
  17. 第一篇--读刘同的《别做那只迷途的候鸟》
  18. 乐固加固后windows下实现给apk签名
  19. css照片缩放清晰显示问题
  20. fn映射 mac 键盘_Mac 与PC键盘的对比及快捷键(黑苹果)

热门文章

  1. QuickBI-云数据库数据源
  2. 《上海市优质中小企业梯度培育管理实施细则》的通知
  3. 在Ubuntu 18.04安装福昕阅读器
  4. 如何制作一个漂亮的二维码 QRBTF
  5. Chrome Autofill 删除规则
  6. 不小心删除文件夹怎么恢复,怎么恢复误删文件?
  7. html.dropdownlist必填,html.dropdownlist传值
  8. Android的DrawText详解
  9. Word插入题注优化(自动删除标签与编号前的空格,编号后添加空格)
  10. Elasticsearch 同义词配置