2012-03-07 69 views
5

我正在构建一个eclipse插件,我将在其中创建一个新文件在我的项目中。 有没有办法刷新当前项目?Eclipse:如何以编程方式刷新当前项目

我知道,我可以通过调用

ResourcesPlugin.getWorkspace().getRoot().getProjects() 

以及它们之间的迭代,并使用

IResource.refreshLocal() 

但是这种方法是不是最好的一个必须的所有项目的引用,特别是如果用户有很多项目。

另一种方法是探索检查新文件是否存在的项目,但我会避免它。

+0

这不是neccessary如果调用'refreshLocal'你使用工作区API创建文件,参见'org.eclipse.core.resources.IFile.create(InputStream,boolean,IProgressMonitor)' – 2012-03-07 22:28:26

+0

@Tom Seidel我应该传递给那个方法FileInputStream is = new FileInputStream(new File( “mypath中”))'? – Maverik 2012-03-07 23:43:35

+1

使用工作区中的资源时,不要使用'java.io.File'。如何创建一个文件,请参阅http://stackoverflow.com/questions/1624054/eclipse-plugin-create-a-new-file – 2012-03-08 07:59:24

回答

2

这不是neccessary打电话refreshLocal如果创建工作区API的文件,请参阅org.eclipse.core.resources.IFile.create(InputStream, boolean, IProgressMonitor)

如何创建一个文件,看到的片段在Eclipse plugin: create a new file

+0

感谢您的帮助! – Maverik 2012-03-08 13:42:39

4

在项目级更新容易很多。

IProject project = root.getProject(currentProjectName); 
project.refreshLocal(IResource.DEPTH_INFINITE, null); 

确实,这可能效率不高,但您确定整个项目都会刷新。

+0

感谢吉尔伯特,现在的问题是:我如何检索当前项目的名称?再次感谢! – Maverik 2012-03-07 23:38:52

+1

@lucaghera:您已经在您的问题中使用了代码中的所有项目。 Eclipse不会知道哪个项目是最新的。这取决于你自己决定。 – 2012-03-08 13:18:52

相关问题