Eclipse插件:从字符串获取IFile

Eclipse插件:从字符串获取IFile,eclipse,file,workspace,Eclipse,File,Workspace,我正在进行一些序列化,其中还包含需要存储为字符串的IFile路径 我正在一个插件项目中使用这个IFile。为了调试或运行Eclipse,将启动一个新的工作区。此测试工作区的根位置与插件文件夹相对。我的问题是,当我将IFile转换为绝对路径时,Eclipse测试工作区会将该文件视为工作区之外的文件,并抛出异常。 如果使用项目相对路径,则从字符串创建IFile失败,并且IFile为null 我真的很想相信它能按照我需要的方式工作,但我真的很想看到它。有没有一种方法可以从项目相对路径重建有效的IFil

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

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

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

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

//name is a string with the absolute path
      IPath location = new Path(name);
        IFile file = project.getFile(location.lastSegment());
但是,正如前面提到的,它只适用于绝对路径,而绝对路径在eclipse测试工作区中不起作用


谢谢你的提示

你很接近了。你想要:

IPath path = new Path(name);
IFile file = project.getFile(path);
名称应该是绝对路径(工作区)或项目相对路径。此接口在IContainer.getFile(IPath)中定义。我将变量从“location”改为“location”,因为location通常表示实际(本地)OS文件路径。要获取路径,请使用:

IPath path = file.getProjectRelativePath();