1

我想从 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! ");
        }
    }
4

1 回答 1

3

获得文件名后,您可以编写一个递归方法,在容器中搜索文件和更多容器。从工作区根目录开始。需要注意的一些事项:

  • IWorkspaceRoot、IProject 和 IFolder 都是 IContainer。
  • IWorkspaceRoot 包含 IProjects
  • IProjects 和 IFolders 包含 IFolders 和 IFiles
  • IContainer 有一个 members() 方法,该方法返回直接包含在该容器中的 IFile 和 IContainer 的列表。
  • IWorkspaceRoot、IProjects、IFolders、IFiles 都是 IResources 并且 IResource 有一个方法可以告诉你它是什么类型的资源(项目、文件夹、文件等)
  • 一个 IFile 可以告诉你它的文件名、项目、项目相对路径和绝对文件名
于 2012-10-19T13:30:09.197 回答