获取工作区根目录

时间:2017-10-20 09:03:32

标签: java eclipse eclipse-plugin

我正在开发一个eclipse插件,我正在尝试获取工作区根目录,以便稍后从工作区访问文件并从中读取内容。

我跳过错误处理以获得更短的代码

IProject project = file.getProject(); // file is the file open in editor
IFolder specificFolder = project.getFolder("test");
IFile fileFromSpecFolder = specificFolder.getFile("test.txt");
Path path = Paths.get(fileFromSpecFolder.getLocationURI());
BufferedReader reader = createReaderFor(path);
// later on read something from the file...

问题在于实现的getProject方法returns itself for projects or null for the project root

public IProject getProject() {
    return workspace.getRoot().getProject(path.segment(0));
}

path.segment(0))包含工作区根

我在这里过于复杂吗?我怎么能用另一种方式实现这个目标呢?

1 个答案:

答案 0 :(得分:2)

使用以下命令获取工作区中路径的IFile

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

IPath path = new Path("project/folder/file");

IFile file = root.getFileForLocation(path);

要阅读工作区中文件的内容,您应该使用IFile.getContents

InputStream is = file.getContents();

使用IFile.getCharset获取文本文件的字符集:

String charset = file.getCharset();

因此该文件的Reader将是:

Reader reader = new InputStreamReader(is, charset);

请注意,Pathorg.eclipse.core.runtime.Path