将一个包移动到另一个包并更新字符串引用?

Move a package to another package and also update string references?

我正在使用 Eclipse IDE 并且我有以下文件结构:

/app
/res
/res/assets
/res/views/FXML/...(fxml files)
.....

我想将 /res 包移动到包 /app

Refactor 上下文菜单中有一个 Move... 按钮,但它不允许我将包移动到同一项目中的另一个包。 Eclipse 提供了重命名包和更新字符串路径的功能。人们也建议在其他类似问题的答案中重命名包。但是我遇到的问题有点不同:

我试图将包 res 重命名为 app.res,因为 Eclipse 使用点 (.) 作为路径分隔符。但是,当 Eclipse 更新字符串路径时,它会再次使用 dot(.) 。例如:

之前:String view_file = "/res/views/FXML/BaseUI.fxml";
更新后:String view_file = "/app.res/views/FXML/BaseUI.fxml";
我需要什么:String view_file = "/app/res/views/FXML/BaseUI.fxml";

点 (.) 对路径无效。我也尝试使用 / 而不是 dot(.) 但没有用。好吧,我可以手动更改路径,但是要更新的路径很多,所以会很费时间。

那么我怎样才能做到这一点?

任何帮助将不胜感激:)

我可以提供的解决方案,我必须坦率地说,不是最好的,但如果你做对了,它会奏效。所以只需创建新的子文件夹并将所有文件复制到 app.res,新的子文件夹。所以我认为 eclipse 文件夹结构管理器不是最好的,所以我用我的方式来做。是的,它有点复杂,但它有效。

一种可能的解决方法是在手动移动包后使用 VS Code、Sublime 等编辑器替换所有路径。

在您的情况下,使用 VS Code 的过程是这样的:

  1. 手动将包 /res 移动到 /app
  2. 现在用 VS Code 打开项目文件夹
  3. 转到Search侧边栏
  4. 搜索 /res/views/FXML/BaseUI.fxml
  5. Replace输入框输入/app/res/views/FXML/BaseUI.fxml
  6. 单击 Replace All 按钮

这个可能对替换任务有帮助。

希望对您有所帮助:)