Eclipse插件:从String获取IFile

时间:2011-11-17 21:48:48

标签: eclipse file workspace

我正在进行一些序列化,它还包含一个需要存储为字符串的IFile路径。

我在插件项目中使用这个IFile。为了调试或运行Eclipse,启动一个新工作区。此测试工作空间的根目录相对于插件文件夹。我的问题是,当我将我的IFile转换为绝对路径时,我的Eclipse测试工作空间将该文件视为工作区外部并抛出异常。 如果我使用项目相对路径,则从字符串创建的IFile失败并且IFile为空。

我真的想要相信它能按我需要的方式工作,但我真的很想看到它。有没有办法从项目相对路径重建有效的IFile?

目前,我正在从String-> IFile进行重建,如下所示:

//name is a string with the absolute path
      IPath location = new Path(name);
        IFile file = project.getFile(location.lastSegment());

但是,就像已经提到的那样,只能使用绝对路径,这在eclipse测试工作空间中不起作用。

感谢提示

1 个答案:

答案 0 :(得分:6)

你非常接近。你想要:

IPath path = new Path(name);
IFile file = project.getFile(path);

名称应该是绝对(到工作空间)或项目相对路径。此接口在IContainer.getFile(IPath)中定义。我将变量从“位置”更改,因为位置通常表示实际(本地)OS文件路径。要使用路径:

IPath path = file.getProjectRelativePath();