文件批量重命名【JAVA】【正则表达式】

文件批量重命名

背景: 下载别人的markdown 文件,里面的图片是绝对地址,导致不显示。
修改成相对地址即可成功显示。
利用正则表达式选取需要替换的部分,替换成你需要更改的新文件名字


import java.io.File;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class test {

    public static void main(String[] args) {
    	// 需要修改的文件所在的文件夹,按需更改
        String filePath = "D:\\image\\";
        File file = new File(filePath);
        // 正则表达式,这里只是提供参考。每个人的需求不一定相同。
        // 我这里是将 %asdfasasdfasdfasdfadfasf%123.png
        // 修改成 imgae-123.png
        String p = "(%.*%)";
        Pattern r = Pattern.compile(p);
        // 列出该文件夹下所有文件
        File[] list = file.listFiles();
        if (file.exists() && file.isDirectory()) {
            if (list != null) {
                for (File value : list) {
                    // 文件名
                    String line = value.getName();
                    // 现在创建 matcher 对象
                    Matcher m = r.matcher(line);
                    // 匹配到了则修改
                    if (m.find()) {
                        // 文件的新名字
                        String newLine = line.replaceAll(m.group(1), "image-");
                        // 对比修改前后文件名称
                        System.out.println("Found value: " + m.group(0));
                        System.out.println(newLine + "\n");
                        // 将文件重命名
                        File dest = new File(filePath + newLine);
                        if( value.renameTo(dest)){
                            System.out.println("修改成功");
                        }else{
                            System.out.println("文件修改失败");
                        }
                    } else {
                        System.out.println("NO MATCH");
                    }
                }
            }
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值