在IProject中搜索文件 – Eclipse
我需要找到eclipse项目中存在的特定文件,该文件位于项目的类路径中。
我有IProject
实例,但不知道如何获得IFile
实例
IProject
接口扩展了IContainer
,它有几个findMember
方法。 你得到一个IResource,可以在使用getType
检查其类型后将其转换为IFile
。 浏览这些界面,它们都有适当的文档记录。
我遇到了同样的问题,这就是我所做的:
IResource getResource(IProject project, String folderPath, String fileName) { IJavaProject javaProject = JavaCore.create(project); for (IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) { IPackageFragment folderFragment = root.getPackageFragement(folderPath); IResource folder = folderFragment.getResource(); if (folder == null || ! folder.exists() || !(folder instanceof IContainer)) { continue; } IResource resource = ((IContainer) folder).findMember(fileName); if (resource.exists()) { return resource; } } // file not found in any source path return null; }
它看起来很丑陋,也许有更直接的方法。 但它的确有效。
如果需要使用类路径,则必须使用IJavaProject
并且片段的工作方式可以防止直接搜索文件路径,因为它将采用“。”。 文件名中的(句点)是java包分隔符。 所以我想你必须首先得到正确的文件夹,然后是文件。