Java 实现批量重命名,亲测可用(精简版)

简介: Java 实现批量重命名,亲测可用(精简版)

之前在网上下载了很多视频,解压缩后,发现里面每个文件前面都有一长串的网址,导致我根本看不清每个视频

的名字到底叫什么?

网上搜了一些批量重命名的方法,可都不是我想要的,既然这样,干脆自己动手用Java写一个吧。测了一下应该没问题,现在分享出来。

先上代码:

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
 * 重命名规则类
 * @author jack
 */
class ReplacementChain{
  private Map<String,String> map;
  public ReplacementChain() {
    this.map = new HashMap<String, String>();
  }
  public Map<String, String> getMap() {
    return map;
  }
  // 添加新的替换规则(字符串替换)
  public ReplacementChain addRegulation(String oldStr , String newStr){
    this.map.put(oldStr, newStr);
    return this;
  }
}
/**
 * 重命名类
 * @author Jack
 */
public class Rename {
  /**
   * 批量重命名
   * @param path
   * @param replacementChain
   */
  public static void multiRename(String path,ReplacementChain replacementChain){
    File file = new File(path);
    boolean isDirectory = file.isDirectory();
    /** 如果不是文件夹,就返回* */
    if(!isDirectory){
      System.out.println(path + "不是一个文件夹!");
      return;
    }
    String[] files = file.list();
    File f = null;
    String filename = "";
    String oldFileName = ""; //之前的名字
    /** 循环遍历所有文件* */
    for(String fileName : files){
       oldFileName = fileName;
       Map<String, String> map = replacementChain.getMap();
       for (Entry<String, String> entry : map.entrySet()) {  
         fileName = fileName.replace(entry.getKey(), entry.getValue());
       }  
       f = new File(path + "\\" + oldFileName); //输出地址和原路径保持一致
       f.renameTo(new File(path + "\\" +  fileName));
    }
    System.out.println("恭喜,批量重命名成功!");
  }
  public static void main(String[] args) {
  }
}

使用方法:

假如我现在有一个文件夹,里面有若干个txt文件,都有一个很长的前缀和后缀。

36.png

现在我希望把它们的前缀都去掉;

第一步,在main方法里面新建一个 ReplacementChain 类的实例,这是一个规则类。主要就是设置一些替换规则。
ReplacementChain replacementChain = new ReplacementChain();
第二步,新增替换规则

第一个文件的全名:

【我是一个好长好长的前缀哦】~~~~~ 小说001(我是萌萌的小尾巴).txt

我们希望把【我是一个好长好长的前缀哦】~~~~~ 和 (我是萌萌的小尾巴) 去掉,只需要在replacementChain上面添加两个替换规则即可。

replacementChain.addRegulation("【我是一个好长好长的前缀哦】~~~~~", "").addRegulation("(我是萌萌的小尾巴)", "");

addRegulation支持链式调用。

第三步,调用批量重命名方法
Rename.multiRename("F:\\测试文件夹", replacementChain);

传两个参数,第一个是需要批量处理的文件所在的文件夹路径,第二个就是 replacementChain 对象。

运行

控制台如果打印出: 恭喜,批量重命名成功!

那么就说明成功了。

我本地的那些文件已经被批量重命名了:

37.png


相关文章
|
5月前
|
Java
Java系列之 重命名文件/图片,renameTo() 方法的使用
这篇文章介绍了Java中File类的renameTo()方法,包括其使用方式、参数、返回值以及一些使用时的注意事项,并通过示例代码演示了如何使用该方法来重命名文件。
Java系列之 重命名文件/图片,renameTo() 方法的使用
|
5月前
|
Java
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
这篇文章介绍了Java中使用`renameTo()`、`Files.copy()`等方法对文件进行重命名、移动和复制的操作,并提供了代码实例和测试效果。
java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
|
8月前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
126 0
|
Java 数据库 数据安全/隐私保护
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)下
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)
|
存储 Java 关系型数据库
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)上
基于 SpringBoot+Vue+Java+MySql的社区医院管理系统的实现(附源码和教程,亲测可用)
|
Oracle Java 关系型数据库
输入java -version 命令行没反应的简单解决办法【亲测有效】
输入java -version 命令行没反应的简单解决办法【亲测有效】
1101 0
|
Java
java获取本机的外网IP地址(亲测有效)
java获取本机的外网IP地址(亲测有效)
1399 0
java获取本机的外网IP地址(亲测有效)
|
Java C# Maven
Java调用C# WebService接口方式【多篇文章经验,亲测可用】
Java调用C# WebService接口方式【多篇文章经验,亲测可用】
799 0
|
Java
Java中如何循环输出对象、属性和值【亲测可用】、反射机制
Java中如何循环输出对象、属性和值【亲测可用】、反射机制
799 0
|
Java Apache
Java创建、重命名、删除文件和文件夹(转)
Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了。如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归。 下面是的一个解决方案,借助Apache Commons IO工具包(commons-io-1.1.jar)来简单实现文件(夹)的复制、移动、删除、获取大小等操作。
1705 0