65.9K
CodeProject 正在变化。 阅读更多。
Home

在解决方案中查找文件

starIconstarIconstarIconstarIconstarIcon

5.00/5 (21投票s)

2009 年 10 月 3 日

CPOL

6分钟阅读

viewsIcon

121057

downloadIcon

3043

使用增量搜索和高级过滤在解决方案中查找任何文件。

Main Window

在解决方案中查找文件主窗口

目录

引言

在一个大型解决方案中查找文件可能是一项困难且艰巨的任务。当解决方案包含数十个以复杂层次结构组织的项时,尤其如此。不幸的是,Visual Studio IDE 没有提供一种方便的方法来查找解决方案中的任意文件。在解决方案中查找文件插件解决了这个烦人的问题。

安装

安装在解决方案中查找文件插件非常简单:只需将二进制文件复制到 Visual Studio 查找插件的预定义文件夹之一中。本文将详细介绍此事:INFO:Visual Studio 插件的默认 .AddIn 文件位置。我个人更喜欢以下路径:

  • Windows XP:“C:\Documents and Settings\<用户名>\<我的文档>\Visual Studio 2005\AddIns”(Visual Studio 2008 为 2008)
  • Windows Vista/7:“C:\Users\<用户名>\Documents\Visual Studio 2005\AddIns”(Visual Studio 2008 为 2008)

注意:对于 Visual Studio 2005 用户:用记事本打开 SlnFileFind.AddIn 文件,并将 HostApplication/Version 节点的值更改为 8.0

<Extensibility xmlns="http://schemas.microsoft.com/AutomationExtensibility">
    <HostApplication>
        <Name>Microsoft Visual Studio</Name>
        <Version>8.0</Version>
    </HostApplication>
    ...
</Extensibility>

将文件复制到文件夹后,请重新启动 Visual Studio 以重新加载其插件。

Visual Studio 命令 "open (of)" - 几乎正确

实际上,VS IDE 允许在不深入浏览解决方案项的情况下打开任意文件。这可以通过标准工具栏上的“查找”组合框来实现。Ctrl+D 快捷键可以将键盘焦点移至组合框。然后,只需键入“**>**”符号(不带引号)即可进入 VS IDE 内部命令的世界。打开文件的命令是 **open**(或简写别名:**of**)。在命令名称之后,您只需开始键入文件名,下拉列表将显示可用文件。

VS IDE `of' command

VS IDE `of' 命令演示

不幸的是,此功能有一个根本性的缺陷:您必须事先知道文件名,并且必须键入其开头。否则,of 命令将找不到任何内容。这个限制使得 of 命令几乎无用。

使用在解决方案中查找文件

嗯,使用非常直接简单。通过主菜单或按 Ctrl+Alt+Y 快捷键打开在解决方案中查找文件主窗口,然后开始键入文件名。

Find File in Solution menu

在解决方案中查找文件菜单

当您对搜索结果满意时,请按 TAB 或向下箭头键选择文件。您可以按住 SHIFT 键或使用 CTRL 键和鼠标来选择多个文件。文件选择方式与普通 Windows Explorer 窗口完全相同。按 ENTER 打开选定的文件,或按 ESC 关闭对话框。

在解决方案中查找文件主窗口是一个标准的 Visual Studio 工具窗口。这意味着它可以像任何其他 IDE 窗口一样浮动、停靠在任一侧或自动隐藏。使用 Ctrl+Alt+Y 快捷键或从主菜单中选择在解决方案中查找文件项将始终将键盘焦点移至搜索框。

注意:解决方案打开后,在解决方案中查找文件开始扫描解决方案树中的文件。它在单独的工作线程中进行,而不是在主 IDE 线程中,以保持 IDE 的响应能力。因此,如果解决方案非常大,那么在解决方案打开后在解决方案中查找文件可能会显示空白窗口几秒钟。这是正常行为。尽管如此,您可以立即开始键入搜索字符串。当所有文件完全加载后,在解决方案中查找文件主窗口将填充正确的结果。不过,只有非常大的解决方案才能看到这种效果。

以下是可能的搜索模式示例。

简单搜索

Simple Search

在搜索框中键入字符串会将所有文件名包含此字符串的文件列出。

多重搜索

Multiple Search

键入多个子字符串会将所有文件名包含所有这些子字符串的文件列出。

排除搜索文件

Negative Match

在子字符串前加上连字符可以排除匹配的文件,使其不出现在搜索结果中。

按完整路径搜索

默认情况下,在解决方案中查找文件按文件名搜索。您可以通过在搜索字符串前添加反斜杠来按完整路径搜索。这对于查找仅属于特定目录的文件可能很有用。

Search by path

排序结果

Sorting Results

可以通过单击列标题来对搜索结果进行排序。

调整在解决方案中查找文件

不建议普通用户进行调整,但有时对于有特殊需求或打字速度极快/极慢的用户可能很有用。在解决方案中查找文件的响应能力和流畅工作的原因是,搜索不是在用户键入搜索字符串时立即执行的。在搜索开始之前有一个小的延迟。这对于人类来说是难以察觉的,但对于机器来说却很重要,因此可以节省不必要的 CPU 负载。

为了显示调整设置,请在搜索框中键入“settings”字符串(不带引号),然后按 Ctrl+Enter

Settings

默认延迟值为 300 毫秒。最小值为 0 毫秒,最大值为 1000 毫秒。

历史

  • 2009 年 10 月 3 日
    • 初始版本
  • 2009 年 10 月 12 日
    • Bug 修复:如果用户尝试打开一个存在于项目但已从磁盘删除的文件,则 FileNotFound 异常未被捕获,IDE 崩溃。
  • 2009 年 10 月 24 日
    • 已修复文件搜索过程中发生的罕见崩溃
    • 性能已得到改进
    • 属于多个项目的文件的“项目”列中将显示“(Multiple projects)”字符串。此外,此类项的文件工具提示将列出该文件所属的所有项目。
  • 2009 年 12 月 5 日
    • 用户打开选定文件后,插件窗口仅在浮动模式下关闭。在所有其他模式下,“在解决方案中查找文件”窗口将保持打开状态。
    • 当调用“在解决方案中查找文件”时,其搜索框将使用 VSE IDE 中当前选定的文本进行初始化,这些文本可能来自文档窗口、输出窗格等。
    • “在解决方案中查找文件”会监视解决方案的更改(添加/删除/重命名文件和项目)。
    • 调整对话框具有一个额外的选项 - 按需重新扫描解决方案文件。一些用户报告说,“在解决方案中查找文件”有时会丢失其文件列表。在找到合适的修复程序之前,此选项应能解决该问题。
  • 2009 年 12 月 9 日
    • Bug 修复:当解决方案中的某些项目加载失败时,插件窗口中没有列出任何文件。
  • 2010 年 2 月 27 日
    • Bug 修复:如果一个文件直接出现在解决方案文件夹下,即不属于任何项目,则该文件不会列在搜索结果中。
  • 2010 年 3 月 27 日
    • Bug 修复:有时内部文件列表与 GUI 不同步。这可能导致 VS IDE 中的未处理异常。
    • 改进:仅处理解决方案/项目事件中相关的用例。
© . All rights reserved.