2006-04-29

关于IFile

Eclipse中的IFile只是个概念性的东西,它并不与文件系统中的某个文件挂钩,而且IFile只能在workspace里进行定位。
IPath destPath = new Path("/test/processdefinition.xml");
IFile destFile = ResourcesPlugin.getWorkspace().getRoot().getFile(destPath);
如果想把东西输出到IFile所指定的文件上,进行create动作就OK了:
InputStream stream = getClass().getClassLoader().getResourceAsStream(definitionFile);
destFile.create(stream, true, getMonitor());

这个stream和getMonitor()应该注意一下.以前一直不明白jar文件中的东西是怎么通过路径获得的,呵呵。
还有这个getMonitor():
private IProgressMonitor getMonitor()
{
return configurer.getStatusLineManager().getProgressMonitor();
}
不是在哪里都可以获得IProgressMonitor的,目前我知道的就是和commands注册的地方有关联的,比如Action,可以通过它的IActionBarConfigurer来查找到。

No comments: