如何告诉Visual Studio在“查找文件”中排除文件夹?

111

我们使用Subversion,因此在解决方案中有名为_svn的子文件夹。在文件中执行查找会返回这些子文件夹中的字符串。是否有办法告诉Visual Studio忽略这些文件?

我们使用Subversion,因此在解决方案中有名为 _svn 的子文件夹。在文件中执行查找会返回这些子文件夹中的字符串。是否有办法告诉 Visual Studio 忽略这些文件?

7
Visual Studio 的“在文件中查找”功能一直困扰着我。正如@rafbel所提到的,最后我选择关闭“包括子文件夹”的选项,但这只是额外的步骤或者可能会忘记再次关闭它。如果能够在搜索主目录时忽略“vendors”文件夹,那就太好了,因为我不关心第三方库。 - Rich Finelli
1
如果有人在VS的UserVoice页面上找到或添加了这个问题,请在此处发布链接,以便我们所有人都可以投票支持它! - pbristow
这让我疯了。最近我发现了自定义“查找位置”下拉框的功能。我们的解决方案包括几个项目,组成安装程序部分,所以在我处理它时,仅限于搜索这些项目是很好的。因此,我创建了一个名为“安装程序查找位置”的配置文件。然而,除非我想手动指定每个项目的每个文件夹和子文件夹,否则我必须保留“包括子文件夹”的选项。这会捕捉到所有bin和obj文件夹。非常烦人。 - Brian Colavito
我已经将.angular、.idea、debug、dist、node_modules和obj从我的项目中排除,但Visual Studio 2022仍然会展开它们,这让我很烦恼。 - Stijn Bollen
9个回答

56

在“查找文件”中的“文件类型”或“查看这些文件类型”中,您可以使用:

!*\ExcludeFolder\*

示例:

!*\bin\*;!*\obj\*;!*\.*;!*\ExcludeFolder\*

输入图像描述


2
那个屏幕截图是来自VS 2019。这个答案在VS 2017中不起作用。 - Scott Hutchinson
2
这正是我在 VS2019 中遇到这个问题时正在寻找的,谢谢! - Mass Dot Net
1
太棒了。我使用Node,从不想搜索node_modules文件夹。谢谢。 - BoundForGlory
请澄清!**是括号。我以为!*\ 是括号。提供完整路径的示例会有所帮助 - 从答案中不清楚ExcludeFolder是否是一个,或者\ExcludeFolder - Ajay

32

在使用Angular+.net Core应用程序时,我们迁移到Visual Studio 2017后,全局查找出现了问题......(主要是由于搜索到巨大的node_modules文件夹所致)

我发现使用MSBuild排除属性DefaultItemExcludes在Visual Studio 2017中有效地排除了全局查找。

我现在默认打开一个新的核心项目的项目文件(.csproj)在VS2017中,并按照以下方式调整属性以排除node_modules(有时我也会添加wwwroot):

<DefaultItemExcludes>$(DefaultItemExcludes);node_modules\**</DefaultItemExcludes>

请参见https://github.com/dotnet/cli/issues/7525,他们建议将要排除的文件夹前置,并使用斜杠而不是反斜杠,如下所示:

<PropertyGroup>
  <DefaultItemExcludes>node_modules/**;$(DefaultItemExcludes)</DefaultItemExcludes>
</PropertyGroup>

希望这能帮助正在遇到 VS2017 全局查找/搜索问题的任何人。


1
非常感谢。奇怪的是,这个问题在SO上被问了很多次,但没有人想到这个答案。 - Ashraf Sabry
谢谢,这应该是答案。 - Dan Parker
我在Visual Studio 2017中的所有Angular项目都是“文件夹”项目,没有任何MSBuild文件或项目文件(*.csproj等),因此我无法在任何地方设置DefaultItemExcludes。 我该怎么办? - Dai
这似乎在VS 2019上不起作用。我试图排除bootstrap.css文件,但它仍然被搜索到了。 <DefaultItemExcludes>assets/css/**;$(DefaultItemExcludes)</DefaultItemExcludes> - VDWWD

32
您可以设置一组文件夹以用于搜索。在“查找和替换”窗口中,“查找位置”输入框右侧有一个“选择搜索文件夹”选项,您可以在其中设置这些文件夹的集合。
只需记得关闭“包括子文件夹”选项,如果您已添加了根项目文件夹。
如果您没有数百个文件夹,这个解决方案应该可行。

18
不应该这样写,因为它解释了如何将文件夹包含在搜索范围内,而不是排除它们。在我看来,这是一个相当大的区别。 - Jan Palas
2
我有数百个文件夹,它们都存放在一个名为 node_modules 的文件夹中。笑 - nothingisnecessary
请注意,“查找位置”列表在项目之间是共享的。因此,如果您这样做了,然后打开另一个项目,它将默认在您上一个项目中设置的路径中查找(直到您更改为止)。 - cowlinator

9
当我使用Visual Studio 2015和TortoiseSVN在Windows 10上移动时,遇到了这个问题。以前,.svn文件夹都是隐藏的,因此不会出现在搜索结果中。为了解决这个问题,我只需在Windows资源管理器中转到文件夹属性,并勾选.svn文件夹的“隐藏”属性。在Visual Studio中刷新文件夹视图后,.svn文件夹不再出现,并且在使用查找时被忽略!将.svn文件夹属性设置为隐藏

抱歉,我还没有安装VS 2017,所以无法检查这个问题。 - brightfunction
1
这在VS 2017中似乎不起作用。此外,它会阻止IISExpress找到文件夹,因此也会破坏一些东西:( - pbristow
在VS 2015 Pro中完美运行。我还没有看到任何负面影响 :-) - BizzyBob

6
我发现在使用 Angular Cli 时,特别是在 Visual Studio 2017 中,生成的 JavaScript 文件或其他构建文件有时会不知不觉地添加到项目中。这可能会导致一些头痛的问题,包括将大量文件添加到搜索中并且减缓速度,尤其是智能感知,因为它正在搜索所有生成的文件以及源文件。
我发现最简单的解决方法是右键单击构建文件夹(即 {Project}/dist),然后选择“从项目中排除”。这将从项目中删除该文件夹,但生成的内容仍将在运行时可用,只是在 UI 中隐藏。

enter image description here

如果您仍需要查看文件,您可以选择“显示所有文件”或点击顶部的图标 enter image description here 来显示隐藏的目录和文件。 基本上,您想要从项目/解决方案中排除所有构建文件。

我认为你不能“排除”一个文件夹,只能排除文件。至少在我的Visual Studio 2017版本中是这样的。当我右键单击项目中的文件夹时,上下文菜单中没有“从项目中排除”的选项。 - Pete
1
在VS 2017中,Web站点项目不支持此选项。 - richardtallent
@richardtallent:我在VS2017和VS2019中都进行了双重检查,删除文件夹的选项是存在的。请查看我的更新答案,其中包含有关如何找到该选项的截图。 - Andy Braham
@AndyBraham,我正在使用WebSite项目类型(解决方案文件中的E24C65DC-7377-472B-9ABA-BC803B73C61A),我认为这可能是一种传统的项目类型,在新项目对话框中不再可用。在此类型的项目中,文件夹的上下文菜单中没有“排除”选项。我使用Vue CLI/UI和Gulp在VS之外构建我的网站,所以唯一有效的修复方法就是从我的解决方案中删除该项目(我无论如何都使用VS Code进行前端代码)。 - richardtallent

6

不要在目录中搜索文件(在这种情况下为解决方案的目录),您可以将搜索限制在项目或解决方案的文件上。这样,_svn目录中的文件将被忽略。


2
我们的解决方案中有嵌套的项目文件夹。因此,进入每个文件夹查找内容是耗时的。 - Bernard
“在文件中查找”对话框有一个“查找位置”输入字段,可以设置为“当前项目”或“整个解决方案”。难道后者对您没有用吗?那我一定是错过了什么……” - Xavier Nodet
2
@XavierNodet 在我的情况下,我有一些解决方案中的文件是我永远不想搜索的,但我需要它们在我的解决方案中,以便它们被复制到输出目录 - 例如测试夹具或其他静态文本资源。 - Tom Lianza

3

我认为你不能设置这个(毕竟你要求进行“整个解决方案”搜索),但通常你可以从项目中删除文件夹/在文件系统中隐藏目录(对于Web Site 项目类型)。


0

将该文件夹添加到.gitignore文件中,在使用打开/文件夹...功能时,我在Visual Studio 2022中实现了此操作,并且在没有*.csproj文件的Angular项目中也在Visual Studio Code(打开文件夹...)中实现了此操作。


-7

如果您没有使用VS2019或VS Code(针对这两种情况,其他答案已经提供了解决方案),那么您可以使用Far Manager中的搜索作为解决方法。它支持掩码来排除某些文件或文件夹的搜索。 在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接