从Eclipse搜索中排除文件夹


Answers:


241

这是对我有用的(我正在使用Helios-最初问这个问题时,也许这种方式不可用?)

  • 转到项目->属性->资源过滤器。
  • 点击添加
  • 选择过滤器类型全部排除
  • 选择“ 应用于文件夹”;检查所有孩子(递归)
  • 在“属性”中,选择“ 名称”,“ 匹配项.svn(例如)。

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

确定项目属性对话框后,这些目录将不再出现在搜索中。实际上,Eclipse非常适合自动更新现有搜索结果窗口并删除所有已被过滤掉的匹配项。


27
对于2011年最新版本的Eclipse(Helios和Indigo),这应该是公认的答案,也是最简单的方法。
2011年

9
由于这一次只能应用于一个项目,因此与标记派生的文件夹相比并没有多大的收获……而且取决于您需要键入过滤器的次数,它可能需要更长的时间。
egid 2012年

使用此方法时,请确保在添加资源过滤器后还清除了您的搜索历史记录(使用搜索面板中的带向下箭头的手电筒按钮)。否则您将不会节省任何搜索时间,并且会收到.git/.../filename.file doesn't exist错误消息,因为搜索缓存(我认为吗?)仍然认为.git文件夹是一个有效的查找位置。
coredumperror 2012年

18
此方法有效,但是将文件隐藏在包资源管理器中。我们可能要编辑文件,但不想在搜索结果中看到它们。
Aram Kocharyan

尝试时,此方法可用于过滤搜索结果,但我开始收到错误消息“在项目'Mercadosa-webapp'上运行构建器'AspectJ Builder'时出错。磁盘上已存在资源:'/MyProject/target/MyProject-1.0/WEB -INF / freemarker / site / file.ftl”。磁盘上已经存在资源:“ / MyProject / target / MyProject-1.0 / WEB-INF / freemarker / site / file.ftl”。
Marc

292

快速而肮脏的方式:

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

安全的方法:

创建一个工作集,仅包括要搜索的实体,并且仅在该工作集中搜索。有关此过程的详细信息,请参见Dave Ray的答案


2
就像戴夫(Dave)在回答中指出的那样:将未真正派生的事物设置为派生可能会导致问题。就像使用Maven创建发行版时一样。
Arjan 2010年

2
在Juno中,将文件夹标记为派生不会将其排除在搜索范围之外。我正在Mac OS上工作,因此可能与之相关,因为我看到许多功能无法在此OS上正常工作
Marc

适用于MS-Windows XP下的Juno SR2。而实际上让我烦恼的文件夹(build文件夹,有时列出文件会导致成千上万次点击)。
starblue

@Instantsoup为什么搜索本身不能排除文件夹?我的意思是,它带有“!” 只是为了这个角色,不是吗?我不明白为什么它对我不起作用。
android开发人员

3
创建“仅包含要搜索的实体的工作集”并不是一种非常安全的方法。实际上,INCLUSIVE过滤器非常不安全。想象创建一个新的目录或文件,该目录或文件与被排除的目录或文件同级。在这种情况下,您将必须记住将其包含在搜索中。如果您忘记了,搜索就会出现假阴性,这很危险,并会使您认为Eclipse搜索不可靠。
JW。

81

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

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

5
这也有问题。请参阅上方Instantsoup的回答下的我的评论。使用这种INCLUSIVE过滤器,在某些情况下,当您添加文件或文件夹时,必须记住要在搜索中包括它们。如果忘记了,您会得到危险的假阴性。这是不理想的。
JW。

在Eclipse Kepler中,单击“新建”后将出现“选择工作集类型”对话框。(值得一提的是,要查找所有类型的文件,此时需要选择“资源”。)
史蒂夫·钱伯斯

1

Eclipse Juno中最好的快捷方法:

  1. 右键单击该文件夹
  2. 转到属性。
  3. 转到C / C ++ Build。
  4. 选中“从构建中排除资源”。
  5. 单击确定按钮。
  6. 右键单击该项目
  7. 转到索引。
  8. 单击重建。
  9. 放松!

1
  • 右键点击您的项目
  • 选择 Properties
  • 选择Resource->Resource filters
  • 请点击 Add filter
  • 选择以下设置:
    • 排除所有
    • 文件和文件夹
    • 所有孩子(递归)
  • 更改NameProject Relative Path
  • (bin$|bin/.*|build/.*|build$)(用您要排除的文件夹的名称binbuild名称替换)填充输入文本
  • Regular expression

点击确定,然后应用。

免责声明

这是基于@atzz的答案的,它帮助我弄清楚了这一点。但是,尽管它确实回答了如何排除某些文件的问题,却没有回答如何排除某些文件夹的问题。


0

在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.

希望是帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.