java 批量重命名指定文件夹中所有文件 递增方式命名 前后缀方式命名

来源:互联网 发布:知乎 胸下夹笔福利 编辑:程序博客网 时间:2024/05/21 07:52

重命名方式主要有两种方式:
1.前后缀方式命名。

reNameFolder(path,prefix,suffix,srcformat,desformat);

path批处理文件路径

prefix|前缀添加内容

suffix后缀添加内容

srcformat是否过滤文件的文件格式,null为不过滤

desformat是否重命名文件的文件格式,null为保持原有格式

如原来文件名称:D:/face/life.jpg   重命名后 D:/face/前缀内容life后缀内容.jpg

2.递增方式命名。

reNameFolder(path,start,offset,prefix,suffix,srcformat,desformat);

path批处理文件路径

start 开始递增量

offset 递增偏移量

prefix|前缀添加内容

suffix后缀添加内容

srcformat是否过滤文件的文件格式,null为不过滤

desformat是否重命名文件的文件格式,null为保持原有格式

如原来文件名称:D:/face/life.jpg   重命名后 D:/face/前缀内容后缀内容1.jpg

3.更多方式重命名

可以根据提供的参数重载多种方法,如递增时保留原有名称,递增时去掉原有名称,重命名是另开目录保存等等。





import java.io.File;/** * ======================================== * <p/> * 版 权:dou361 版权所有 (C) 2015 * <p/> * 作 者:陈冠明 * <p/> * 个人网站:http://www.dou361.com * <p/> * 版 本:1.0 * <p/> * 创建日期:2016/1/13 * <p/> * 描 述: * <p/> * <p/> * 修订历史: * <p/> * ======================================== */public class ReNameFolder<span style="font-family: Arial, Helvetica, sans-serif;"> {</span>    /**     * @param args     */    public static void main(String[] args) {        System.out.println("---------------------开始操作-------------------");        reNameFolder(new File("C:\\Users\\Administrator\\Desktop\\Face"), 0, 1, "jjdxm_", "", null, null);        System.out.println("---------------------操作完成-------------------");    }    /**     * 重命名指定文件夹下的所有文件前后缀方式     *     * @param path      路径     * @param prefix    前缀     * @param suffix    后缀     * @param srcformat 原有格式过滤     * @param desformat 转换格式     */    private static void reNameFolder(File path, String prefix, String suffix, String srcformat, String desformat) {        reNameFolder(path, -1, -1, true, prefix, suffix, srcformat, desformat);    }    /**     * 重命名指定文件夹下的所有文件递增方式     *     * @param path      路径     * @param start     开始位置     * @param offset    偏移量     * @param prefix    前缀     * @param suffix    后缀     * @param srcformat 原有格式过滤     * @param desformat 转换格式     */    private static void reNameFolder(File path, int start, int offset, String prefix, String suffix, String srcformat, String desformat) {        reNameFolder(path, start, offset, false, prefix, suffix, srcformat, desformat);    }    /**     * 重命名指定文件夹下的所有文件     *     * @param path      路径     * @param prefix    前缀     * @param suffix    后缀     * @param start     起始位置     * @param offset    偏移量     * @param srcformat 原有格式过滤     * @param desformat 转换格式     */    private static void reNameFolder(File path, int start, int offset, boolean saveOldName, String prefix, String suffix, String srcformat, String desformat) {        if (!path.exists()) {            return;        }        if (prefix == null) {            prefix = "";        }        if (suffix == null) {            suffix = "";        }        /** 当前目录 */        File[] files = path.listFiles();        for (File file : files) {            if (file.isDirectory()) {                reNameFolder(file, start, offset, saveOldName, prefix, suffix, srcformat, desformat);            } else {                /** 旧文件名称,去后缀 */                String oldName;                /** 新文件名称,完整路径 */                StringBuilder newName = new StringBuilder();                /** 新文件后缀 */                String newfix;                String fileName = file.getName();                int index = fileName.lastIndexOf(".");                /**-------------旧文件名不包含后缀-------------------*/                if (index == -1) {                    /** 无后缀文件 */                    oldName = fileName;                } else {                    /** 有后缀文件 */                    oldName = fileName.substring(0, index);                }                /**-------------旧文件名不包含后缀-------------------*/                /**-------------新文件后缀-------------------*/                if (desformat == null) {                    if (index == -1) {                        newfix = null;                    } else {                        newfix = fileName.substring(index + 1);                    }                } else {                    newfix = desformat;                }                /**-------------新文件后缀-------------------*/                newName.append(file.getParent());                newName.append(File.separator);                newName.append(prefix);                if (saveOldName) {                    newName.append(oldName);                }                newName.append(suffix);                if (start >= 0 && offset > 0) {                    newName.append(start + "");                    start = start + offset;                }                if (srcformat == null) {                    /** 没有加过滤,操作所有文件 */                    if (newfix != null) {                        newName.append(".");                        newName.append(newfix);                    }                    File newFile = new File(newName.toString());                    if (newFile.exists()) {                        /** 如果重命名的文件已经存在,则不重命名 */                        System.out.println("rename----oldFile----" + oldName + "----newFile----" + newFile.getName() + "----fails");                    } else {                        file.renameTo(newFile);                    }                } else if (file.getName().endsWith("." + srcformat)) {                    /** 有加过滤,操作过滤文件 */                    newName.append(".");                    newName.append(newfix);                    File newFile = new File(newName.toString());                    if (newFile.exists()) {                        /** 如果重命名的文件已经存在,则不重命名 */                        System.out.println("rename----oldFile----" + oldName + "----newFile----" + newFile.getName() + "----fails");                    } else {                        file.renameTo(newFile);                    }                }            }        }    }}



0 0
原创粉丝点击