copyrightChange已完成

package org.example;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;

public class copyrightChange {
    public static void main(String[] args) {
        String newFolderPath = "C:\\Users\\majun\\Desktop\\F1 20230904-需要替换测试\\普通话水平测试指导用书:河北版_978-7-100-08809-1_1_30"; // 替换为你要查找的文件夹路径
        String oldFolderPath = "C:\\Users\\majun\\Desktop\\参考\\普通话水平测试指导用书:河北版_978-7-100-08809-1_1_29"; // 替换为你要查找的文件夹路径
        String sourceFilePath = findPDFFiles(newFolderPath,"中文版权");
        String destPath = findPDFFiles(oldFolderPath,"中文版权");
        if (sourceFilePath != null) {
            fileMoveExample(sourceFilePath,new File(destPath).getParentFile());
        } else {
            System.out.println("未找到符合条件的文件!");
        }
        changeName(new File(destPath).getParentFile());
        delPdf(new File(destPath).getParentFile());
    }
    public static void delPdf(File folder) {
        if (folder.isDirectory()) {
            File[] files = folder.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isFile() && file.getName().endsWith(".pdf")) {
                        String fileName = file.getName();
                        // 判断文件名中是否包含数字且包含"中文版权"字样
                        if (fileName.matches(".*\\d+.*") && fileName.contains("中文版权")) {
                            if (file.delete()) System.out.println("文件删除成功!:" + fileName);
                            else System.out.println("文件删除失败:" + fileName);
                        }
                    }
                }
            }
        }
    }
        public static void changeName(File folder) {
        File[] files = folder.listFiles();
        File firstPdf = null;
        File secondPdf = null;
        for (File file : files) {
            if (file.isFile() && file.getName().contains("中文版权") && file.getName().endsWith(".pdf")) {
                if (firstPdf == null) {
                    firstPdf = file;
                } else if (secondPdf == null) {
                    secondPdf = file;
                } else {
                    break;
                }
            }
        }
        if (firstPdf != null && secondPdf != null) {
            String tempName = "temp.pdf";
            File tempFile = new File(firstPdf.getParent() + "\\" + tempName);
            firstPdf.renameTo(tempFile);
            File newFile1 = new File(secondPdf.getParent() + "\\" + firstPdf.getName());
            secondPdf.renameTo(newFile1);
            File newFile2 = new File(tempFile.getParent() + "\\" + secondPdf.getName());
            tempFile.renameTo(newFile2);
            System.out.println("PDF 文件交换成功!");
        } else {
            System.out.println("未找到符合条件的 PDF 文件!");
        }
    }
    public static String findPDFFiles(String folderPath, String keyword) {
        File folder = new File(folderPath);
        if (!folder.exists() || !folder.isDirectory()) {
            System.out.println("文件夹不存在!");
            return null;
        }

        File[] files = folder.listFiles();
        if (files != null && files.length > 0) {
            // 先遍历文件夹内的文件
            for (File file : files) {
                if (!file.isDirectory() && file.getName().toLowerCase().endsWith(".pdf") && file.getName().contains(keyword)) {
                    return file.getAbsolutePath();
                }
            }
            // 再遍历子文件夹
            for (File file : files) {
                if (file.isDirectory()) {
                    String foundFilePath = findPDFFiles(file.getAbsolutePath(), keyword);
                    if (foundFilePath != null) {
                        return foundFilePath;
                    }
                }
            }
        }

        return null;
    }

    public static void fileMoveExample (String sourceFilePath,File dFilePath) {
        // 目标文件夹路径
        String targetFolderPath = dFilePath.getPath();

        try {
            // 创建源文件对象
            File sourceFile = new File(sourceFilePath);
            // 创建目标文件夹对象
            File targetFolder = new File(targetFolderPath);

            // 判断源文件是否存在
            if (sourceFile.exists()) {
                // 执行文件剪切操作
                File targetFile = new File(targetFolder, sourceFile.getName());
                Files.move(sourceFile.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
                System.out.println("文件剪切成功!");
            } else {
                System.out.println("源文件不存在!");
            }
        } catch (IOException e) {
            System.out.println("文件剪切失败:" + e.getMessage());
        }
    }
}

你可能感兴趣的:(#,文件替换,java,算法)