使用org.eclipse.core.resources.IProject类创建过滤器

时间:2018-02-08 06:38:42

标签: eclipse eclipse-plugin eclipse-rcp

我正在使用org.eclipse.core.resources.IProject创建一个jar文件。在创建时我想根据文件扩展名从所选目录中排除几个文件。

if (selectPackageCombo.getText().equals(item)) {
    IProject project = availableProjects.get(i);
    Package package = EclipsePackageRepository.instance().getPackage(project);
    if (package != null) {
        try {
            project.createFilter(IResourceFilterDescription.EXCLUDE_ALL| IResourceFilterDescription.FOLDERS|IResourceFilterDescription.FILES,
                                 new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", "1.0-name-matches-false-false-Test"),IResource.BACKGROUND_REFRESH, new NullProgressMonitor());
        } catch (CoreException e) {
            e.printStackTrace();
        }
        jarData.setSelectedProject(project);
        jarData.setOutputSuffix(package.getPackageResource().getType());
    }
    break;
}

请帮助我如何创建FileInfoMatcherDescription对象,以排除扩展名为“ .ayt ”的所有文件

1 个答案:

答案 0 :(得分:0)

关于此的信息并不多,但看起来您可以通过使用项目属性中的“资源过滤器”页面并创建所需的过滤器来计算出值。然后,id和arguments值将保存在项目中的.project文件中,您可以阅读。

因此,根据您的要求我

<matcher>
    <id>org.eclipse.ui.ide.multiFilter</id>
    <arguments>1.0-name-matches-false-false-*.ayt</arguments>
</matcher>

所以构造函数是

new FileInfoMatcherDescription("org.eclipse.ui.ide.multiFilter", 
                               "1.0-name-matches-false-false-*.ayt")