2012-10-19 30 views
0

我想从Eclipse插件搜索文件。 我用下面的代码,但它没有工作。如何从Eclipse插件搜索文件?

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
    String str = JOptionPane.showInputDialog(null, 
      "Please enter the search file name"); 
    for (IProject project : root.getProjects()) { 
     IFile file = project.getFile(str); 
     if (file.exists()) { 
      JOptionPane.showMessageDialog(null, file.getName()); 
     } else { 
      JOptionPane.showMessageDialog(null, "File Not Found! "); 
     } 
    } 
+0

您是否期待文件的名称(例如fred.txt),然后查看整个工作区中的文件? –

+0

是的,只是文件名例如“SalesHandler.java” –

回答

3

一旦你有了文件名,你就可以编写一个递归的方法来搜索容器中的文件和更多的容器。从工作区根开始。有些事情要注意:

  • IWorkspaceRoot,IProject和IFolder都是IContainers。
  • IWorkspaceRoot包含IProjects
  • IProjects和IFolders包含IFolders和的ifiles
  • IContainers有一个返回该容器中直接含有的ifiles和IContainers的列表的成员()方法。
  • IWorkspaceRoot,IProjects,IFolders,的ifiles都的IResources和IResource接口有,告诉你它是什么类型的资源(项目,文件夹,文件等)
  • 一个的IFile可以告诉你它的文件名,项目的方法,项目相对路径和绝对文件名
+0

非常感谢,它的工作原理 问题是我找不到你提供的项目结构的组织信息:) 有没有办法突出显示找到的文件?即使其被选中 –