我如何在eclipse的项目浏览器中获取文件的路径

时间:2015-01-15 00:04:50

标签: eclipse eclipse-plugin eclipse-rcp

我将构建一个eclipse rcp。在这个上下文中,我将在这个rcp中添加一些视图。视图将是项目资源管理器视图,编辑器与eclipse ide一样。并且会有一些与我的项目相对应的其他视图。除此之外,我还有一个数据库表,其中文件与其路径一起保存。所以事情是:如果用户点击一个文件,那么我将获取文件的路径或将其保存到变量中,以便我可以将所选文件的路径与数据库表的现有文件进行比较...所以他们不会是另一种观点,谁会使用这个我希望我能更好地解释我的问题

我的问题是。在eclipse ide的项目浏览器视图中。如果你点击一个文件,那么我想得到这个文件的路径。任何人都知道我怎么能得到一个文件的路径项目exlporer。或者这个路径保存在任何地方,所以我可以从这个地方获取文件的路径。

我将尝试用这个例子解释我的问题:

如果我点击文件:abc.java

和项目资源管理器中的abc.java文件的路径是例如:Example / src / abc.java

我的问题是:

在哪里可以找到文件abc.java的路径,或者这个路径是保存在哪里的?

或更好:

如果我点击abc.java文件 我怎样才能获得这个abc.java的路径,将此路径用于其他主题。

提前谢谢

3 个答案:

答案 0 :(得分:1)

您使用ISelectionService获取当前选择:

ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();

ISelection selection = service.getSelection();

if (selection instanceof IStructuredSelection)
 {
   Object selected = ((IStructuredSelection)selection).getFirstElement();

   IFile file = (IFile)Platform.getAdapterManager().getAdapter(selected, IFile.class);

   .... use file
 }

当前选择将在任何视图或编辑器当前处于活动状态。您还可以在特定视图中向选择服务询问当前选择。

答案 1 :(得分:0)

最终,答案是你需要选择一个IFile。然后你可以使用getFullPath()向IFile询问它的路径。见http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcore%2Fresources%2FIFile.html

但是你需要为这个问题提供更多的背景信息。你有弹出菜单动作正在通过选择吗?您是否正在从其他视图注册选择侦听器?或完全不同的东西?基本上,您需要告诉我们您所处的环境以及您可以获得的数据。

答案 2 :(得分:0)

我将构建一个eclipse rcp。 在这个上下文中,我将在这个rcp中添加一些视图。视图将是项目资源管理器视图,编辑器与eclipse ide一样。并且会有一些与我的项目相对应的其他视图。除此之外,我还有一个数据库表,其中文件与其路径一起保存。所以问题是:如果用户点击一个文件,那么我将获取文件的路径或将其保存到变量中,以便我可以将所选文件的路径与数据库表的现有文件进行比较... 所以他们不会是另一种观点,谁会使用它 我希望我能更好地解释我的问题

感谢