【问题标题】:I want to retrieve the path/filename of the selected java file from the package explorer我想从包资源管理器中检索所选 java 文件的路径/文件名
【发布时间】:2012-04-16 00:57:36
【问题描述】:

我正在开发一个需要检索 java 文件的路径/文件名的插件。

我编写的代码成功检索了 xml 或清单文件的文件名/路径,但无法检索包中 Java 文件的路径。

我使用的代码是:-

if (selection instanceof IStructuredSelection)

    {
        Object o = ((IStructuredSelection) selection).getFirstElement();
        if (o instanceof IFile) 
        {
            IPath loc = ((IFile) o).getLocation();
            if (loc != null) 
            {
                    selectedFile = loc.toOSString();

            }
            else
                selectedFile = "Error at loc";
        }
        else
            selectedFile = "Error at O";
    }

【问题讨论】:

  • “无法”到底是什么意思?
  • 它显示了文件的正确路径。 bt 对于 java 文件,它显示“ERROR AT O”。
  • 如果它不是IFile 的实现者,那么调试和检查o 实际上是什么类型呢?
  • 我确实尝试过检查,虽然我无法做出相同的判断,但我应该寻找什么??
  • 好吧,您可能正在寻找由您实际获得的类(或其超类之一)实现的接口,从我在网络上找到的内容来看,您最终应该到达ICompilationUnit(看我的回答)。

标签: java eclipse plugins


【解决方案1】:

这里有一个来自 eclipse 论坛的话题:http://www.eclipse.org/forums/index.php/mv/msg/162556/

Java 源文件资源似乎没有实现IFile 而是ICompilationUnit,所以对此进行测试。

【讨论】:

  • 是的,它在调试中写在那里。 ICompilationUnit。谢谢,我会检查那个。
  • 上面的链接不是关于返回 ICompilationUnit 的所选文件资源。那么如何将文件资源转换为 IPath,以获取文件的路径?有人告诉那部分。请。
  • @Hitesh 你真的需要学习如何搜索 api。据我所知,ICompilationUnit 扩展了IJavaElement,因此提供了一个getPath() 方法,该方法返回一个IPath
【解决方案2】:

谢谢你,我能在你的帮助下搞清楚

解决方案是 -

Object o = ((IStructuredSelection) selection).getFirstElement();

书房 IPath loc = ((ICompilationUnit) o​​).getPath();

书房 selectedFile = loc.toOSString();

有了这个,你将能够得到你选择的java文件的路径。而且,这显示了从项目名称开始的路径名,有人可以告诉如何获取整个物理路径名,以及驱动器等......??

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2018-08-19
    相关资源
    最近更新 更多