Java在创建同名目录/同名文件时名称拼接(数字)

    /**
     * 创建同名文件名称拼接(数字)
     *
     * @param path 需要创建的目录
     * @return
     */
    public static String recursionMkdirsFile(String path) {
        String newPath = path;
        for (int i = 1; i < 10000; path = newPath + "(" + i++ + ")") {
            File file = new File(path);
            if (file.exists()) {
            } else {
                file.mkdirs();
                break;
            }
        }
        return path;
    }

    /**
     * 同名文件名称拼接新名称
     *
     * @param path     文件目录
     * @param fileName 文件名称
     * @param index    索引
     * @return
     */
    public static String recursionMkdirsEFileName(String path, String fileName, int index) {
        Path directoryPath = Paths.get(path);
        try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(directoryPath)) {
            for (Path path2 : directoryStream) {
                String pathName = path2.getFileName().toString();
                if (pathName.equalsIgnoreCase(fileName)) {
                    index++;
                    int i = index - 1;
                    if (index > 0) fileName = fileName.replaceAll("\\(" + i + "\\)", "");
                    fileName = recursionMkdirsEFileName(path, FileUtil.getName(fileName) + "(" + index + ")"
                            + FileUtil.getSuffix(fileName), index);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return fileName;
    }
posted @   Comfortable  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示