В Eclipse как рефакторировать имя файла в проекте программно

Мы можем рефакторировать имена проектов, но мне нужна помощь в рефакторинге файлов в eclipse программным способом. У нас под этой папкой лежит папка xxx.ZZZ файл и мы хотим переименовать / рефактор этот файл.

С уважением

2 ответа

  1. Если файл является файлом класса, вы можете попробовать код ниже:

    RefactoringContribution contribution = RefactoringCore.getRefactoringContribution(IJavaRefactorings.RENAME_COMPILATION_UNIT);
    RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) contribution.createDescriptor();
    descriptor.setProject(cu.getResource().getProject().getName());
    descriptor.setNewName(newFileName);
    descriptor.setJavaElement(cu);
    descriptor.setUpdateReferences(true);
    RefactoringStatus status = new RefactoringStatus();
    try {
        RenameRefactoring refactoring = (RenameRefactoring) descriptor.createRefactoring(status);
        IProgressMonitor monitor = new NullProgressMonitor();
        RefactoringStatus status1 = refactoring.checkInitialConditions(monitor);
        if (!status1.hasFatalError()) {
            RefactoringStatus status2 = refactoring.checkFinalConditions(monitor);
            if (!status2.hasFatalError()) {
                Change change = refactoring.createChange(monitor);
                change.perform(monitor);
            }
        }
    } catch (CoreException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    cu имеет тип ICompilationUnitи вы можете получить блок компиляции от IPackageFragment.
    Вы также можете заменить IJavaRefactorings.RENAME_COMPILATION_UNITто, что вам нужно.

  2. Попробуйте нажать правой кнопкой мыши на Файл, выберите refactor и введите желаемое имя файла. Вам может быть предложено дополнительно обновить ссылки и аналогичные имена переменных. Проверьте их оба (рекомендуется) и ваш файл и все его ссылки будут обновлены