从Eclipse搜索中排除文件夹

是否有一种方法可以在Eclipse中搜索时排除某些文件夹(及其所有子文件夹)?

90918 次浏览

快速而肮脏的方式:

右键单击文件夹,转到属性,并将文件夹标记为派生的。默认情况下,派生实体被排除在搜索之外。这种方法的问题是,如果删除文件夹,Eclipse会“忘记”它是派生的(从Eclipse内部或外部,然后刷新项目树)。就像Eclipse一样,这是一个长期存在的缺陷(在这种情况下为10年),仍然适用于当前版本(在撰写本文时为4.6 Neon)。

安全的方法:

创建一个工作集,其中只包括要搜索的实体,并且只在该工作集中搜索。有关此过程的详细信息,请参见戴夫·雷的回答

我可以想象,标记派生资源可能会在其他领域引起问题。相反,用你想要包含在搜索中的文件夹创建一个工作集:

  • 打开搜索对话框(Ctrl + H)
  • 将搜索范围更改为工作集
  • 单击“选择…”
  • 单击New以创建一个新的工作集,其中包含您想要搜索的内容(或添加全部,然后删除您想要过滤的内容)

以下是对我有效的方法(我正在使用Helios -也许当这个问题最初被问到时,这种方法是不可用的?)

  • 进入“项目->属性->资源过滤器”。
  • 单击添加
  • 选择过滤器类型: 排除所有
  • 选择适用于: 文件夹;检查所有子(递归)
  • 在属性中,选择的名字匹配.svn(例如)。

(实际上,我正在使用.*一次性过滤掉.svn, .hg等。)

在ok项目属性对话框后,这些目录将不再出现在搜索中。事实上,Eclipse非常友好,它会自动更新现有的搜索结果窗口,并删除现在过滤掉的所有匹配项。

在Eclipse Juno中最好的快速和肮脏的方法:

  1. 右键单击文件夹
  2. 进入属性。
  3. 转到C/ c++ Build。
  4. 勾选“从构建中排除资源”。
  5. 点击OK按钮。
  6. 右键单击项目
  7. 转到索引。
  8. 单击重建。
  9. 放松点!
  • 右键单击您的项目
  • 选择Properties
  • 选择Resource -> Resource filters
  • 单击Add filter
  • 选择以下设置:
    • 排除所有
    • 文件和文件夹
    • 所有子(递归)
    • 李< / ul > < / >
    • Name改为Project Relative Path
    • (bin$|bin/.*|build/.*|build$)填充输入文本(用要排除的文件夹名称替换binbuild)
    • 蜱虫Regular expression

    点击OK,然后应用。

    免责声明

    这建立在@atzz的答案上,它帮助我弄清楚了这个问题。然而,虽然它确实回答了如何排除某些文件的问题,但它没有回答如何排除某些文件夹的问题。

在Eclipse中排除正在搜索的文件夹或文件

1 Right-click on the file/folder.
3 Click on the "Properties" option.
4 Select the "Resource" option.
5 Place a check next to the "Derived" attribute.

希望就是帮助。