zoukankan      html  css  js  c++  java
  • Java实现批量修改文件名称

    import java.io.File;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    
    /**
     * 重命名规则类
     * @author jack
     */
    public 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
     */
    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) {
            ReplacementChain replacementChain = new ReplacementChain();
            replacementChain.addRegulation("【我是一个好长好长的前缀哦】~~~~~", "").addRegulation("(我是萌萌的小尾巴)", "");
            Rename.multiRename("F:\测试文件夹", replacementChain);
        }
    }
    

    以上代码就可以批量修改文件夹下面所有的文件的名称,

    运行

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

    那么就说明成功了。越快的代码运行替代了繁琐的手工劳动。

  • 相关阅读:
    LiLicense server OR Activation code
    一个比喻讲明Docker是什么
    Linux 系统目录结构说明
    Sublime Text2支持Vue语法高亮显示
    javascript权威指南笔记[6-8]
    javascript权威指南笔记[1-5]
    使用chrome控制台调试js代码
    windows与linux下执行.class(包含main方法)
    linux 命令
    几种常见的编码格式
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/5980925.html
Copyright © 2011-2022 走看看