【问题标题】:How to force a refresh on the Project Explorer view?如何强制刷新 Project Explorer 视图?
【发布时间】:2011-01-18 18:01:55
【问题描述】:

我创建了一个向导,完成后会在项目资源管理器中添加两个文件。 其中一个应该被隐藏,但是当我在我的向导中按下完成按钮时,Eclipse 不会自动刷新视图并且它会继续显示文件。当我按 F5 时它只是隐藏它。 有没有办法在我完成向导后强制它刷新项目资源管理器?

【问题讨论】:

    标签: java eclipse eclipse-plugin swt


    【解决方案1】:

    另一个选项在eclipse中

    转到 Windows-->Preferences-->General-->Workspace--> 并选中 Refresh Automatically ("refresh using native hooks or polling ")

    如果开启此选项,那么工作区资源将自动与文件系统中的相应资源同步。

    注意:这可能是一个冗长的操作,具体取决于您工作区中的资源数量。

    http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.user/reference/ref-9.htm

    【讨论】:

    • 为我工作!!搜索 2 小时后,我看到了您的答案!谢谢。
    【解决方案2】:

    听起来您没有使用 Eclipse 资源 API 来更改文件系统。你有两个选择:

    1. 在处理 Eclipse 项目的内容时,最好的选择是使用 Eclipse 资源 API 而不是 java.io。请参阅 org.eclipse.resources 插件。从 ResourcesPlugin.getWorkspace().getRoot().getProject( "name" ) 开始。使用 IProject、IFile 和 IFolder API。

    2. 或者,特别是如果您的向导正在调用不支持 Eclipse 的代码,您需要在确定所有基于 java.io 的文件系统操作都已完成后调用刷新。使用 refreshLocal() 方法,该方法可用于 IProject、IFile 和 IFolder 类。例如,以下 sn -p 刷新给定项目的所有内容。这通常是多余的,因此您需要在调用刷新之前尽可能缩小范围。

      ResourcesPlugin.getWorkspace().getRoot().getProject( "proj" ).refreshLocal( IResource.DEPTH_INFINITE, new NullProgressMonitor() );

    【讨论】:

    • 这种方法不适合我。有什么建议为什么会发生这种情况?我需要 eclipse 再次调用我的 ContentProvider
    【解决方案3】:

    另一种选择是使用“外部工具”来调用您的工具,并在“刷新”和“构建”选项卡中检查选项以刷新和编译目标项目。

    运行 -> 外部工具 -> 外部工具配置

    【讨论】:

      猜你喜欢
      • 2022-12-07
      • 2014-11-13
      • 2011-08-24
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多