当前位置:网站首页>【技术碎片】重名文件 加后缀重命名过滤实现

【技术碎片】重名文件 加后缀重命名过滤实现

2022-06-10 19:21:00 锥栗

在这里插入图片描述

前言

重名文件加后缀重命名过滤

如果存在重名,则在后面(扩展名的前面)加后缀 “_1”, “_2”, “_3”, … 直到文件名不重复为止。

实现

public class Main {

    public static void main(String[] args) {
        String originalFileName = "1232121421412(0).jpg";

        Boolean repeat = true;
        // 文件是否存在重名
        StringBuilder fileName = new StringBuilder();

        // 如果存在重名,则加_1后缀
        if (repeat) {
            int suffixNumber = 0;
            String fileExtensionName = "";

            // 分离文件拓展名(.jpg .png ... )
            for (int i = originalFileName.length() - 1; i > 0; i--) {
                if (originalFileName.charAt(i) == '.') {
                    fileExtensionName = originalFileName.substring(i, originalFileName.length());
                    fileName = new StringBuilder(originalFileName.substring(0, i));
                    break;
                }
            }

            // 加_1后缀
            fileName.append("_" + ++suffixNumber);
            // 如果已经存在 _1 后缀,则改为 _2 , _3 ,...直到不重复为止
            while (repeat) {
                // 把我们添加的"_"后面所有数字字符删除
                for (int length = fileName.length(); length > 0; length--) {
                    char c = fileName.charAt(length - 1);
                    if (c != '_') {
                        fileName.delete(length - 1, length);
                    }
                    else {
                        break;
                    }
                }
                fileName.append(++suffixNumber);

                // 假设_23时不再重复
                if ("23".equals(fileName.substring(fileName.length() - 2, fileName.length()))) {
                    break;
                }
            }
            // 合并扩展名后返回
            fileName.append(fileExtensionName);
            System.out.println(fileName);
        }

    }

}

    

运行

在这里插入图片描述

原网站

版权声明
本文为[锥栗]所创,转载请带上原文链接,感谢
https://blog.csdn.net/fisherish/article/details/125188698