Project中的Visual Studio 2017文件夹

问题描述 投票:4回答:1

我正在使用Visual Studio 2017在C中编写一些内容。当我打开一个新项目时,我有一些默认过滤器,在项目的“添加”选项中,只有过滤器而没有文件夹/目录。

我希望我的项目具有文件夹结构,但无法在Visual Studio中向项目添加文件夹。在线查看我只能找到将现有文件夹添加到项目而不添加新文件夹的解决方案。

如何将新文件夹添加到Visual Studio C项目?

如何禁用过滤器?

c visual-studio visual-studio-2017
1个回答
1
投票

我认为Visual Studio 2017(早期版本的IDE)及其在文件视图中的文件表示的方式是一种虚拟文件组织系统。文件视图允许您以逻辑方式组织文件,以更有用的方式呈现实际的文件系统。

在文件视图中看起来像文件夹的图标实际上不是文件夹,而是标签,称为过滤器,它允许您按照自己喜欢的方式对文件进行分组,而不管它们是如何物理存储在永久存储区域(如硬盘驱动器)中的。

过滤器更灵活,与物理文件夹层次结构不对应,因为它们允许您将单个文件夹中的文件组织成逻辑组。过滤器允许以比通常在文件夹中对文件进行分组所使用的更精细的粒度完成此操作。过滤器还允许您将多个文件夹中的文件一起分组到文件视图中的单个逻辑文件夹中。

但是,过滤器可能会让人感到困惑,因为我们大多数人都习惯于文件夹层次结构,因此过滤器方法可以将过滤器中表示的逻辑文件与位于文件夹中的物理文件位置断开连接。

我添加文件的典型方法

通常我所做的是通过Windows创建物理文件夹或克隆现有的Git或Subversion或VS Team Services源树。有了新的东西,我可以使用New Solution或New Project向导创建我的初始起点,然后通过Windows物理组织和添加文件和文件夹,然后进入Visual Studio IDE创建过滤器,然后将现有文件添加到过滤器。在某些情况下,我将在Filter中创建子过滤器,以便更好地组织物理文件夹中的文件。

对于新文件,我将使用Add New Item菜单选项将项目添加到正确的项目中。如果右键单击过滤器名称,新文件将自动添加到过滤器中。在某些情况下,当我在项目中添加额外的过滤器来组织文件时,我会将新创建的项目拖动到正确的过滤器并将其放在那里。

此拖放不会更改文件的物理位置,而是通过将其从一个过滤器移动到另一个过滤器来更改其逻辑位置。要将文件从一个文件夹物理移动到另一个文件夹,我通常会使用Windows。请记住,如果您使用Windows物理移动文件,您还必须修改已分配给它的Visual Studio 2017过滤器中的文件条目,我通常在文件上执行Remove,然后是Add Existing Item并浏览到其新位置。

您似乎无法在同一项目中的多个过滤器中拥有相同的文件。

在某些情况下,当我Add New item时,我将使用Add New Item按钮从Browse对话框中显示的建议文件夹更改为其他文件夹。如果我需要对文件进行不同的扩展,那么我也会进行更改,这是将新的C源文件添加到需要将.cpp扩展名更改为.c的项目时的常见操作。

您还可以使用Browse按钮导航到一个文件夹,然后您可以创建一个新文件夹,如果您喜欢使用在显示的文件和文件夹列表中右键单击时显示的右键菜单。

不幸的是,Add New Item对话框总是希望将文件放入包含所有其他文件的项目目录中。 Add Class向导不允许您指定除默认项目文件夹之外的任何内容。在某些情况下,我使用Visual Studio IDE创建了C ++类,将它们从项目中删除,将物理文件移动到我想要的位置,然后将它们添加回项目中。

过滤方法似乎运行良好,因为整个解决方案分为多个项目,每个项目都有自己的物理文件夹。多个项目可以对应于特定的DLL或静态库或解决方案使用的其他组件。

另见Can I configure Visual Studio to use real folders instead of filters in C++ projects?

文件夹和过滤器的示例屏幕截图

以下是正在使用的资源的小项目的Windows文件夹视图:

screenshot of a Windows folder showing the files in it

这就是我设置过滤器的方法。通常情况下,资源文件列表可能会很长,但是我创建了两个子过滤器来逻辑地将位图文件与图标文件分开,尽管它们共享相同的物理资源文件夹。

screenshot of Solution View from Visual Studio 2017 showing same files

名为PepIncludes的过滤器对应于名称相同的实际物理文件夹,而名为“头文件”和“源文件”的过滤器是所有文件组,这些文件都位于与项目文件夹相同的同一物理文件夹中。

以下屏幕截图显示了过滤器如何提供灵活性。我有一个包含文件的文件夹,PepIncludes,我在这个Visual Studio 2017解决方案中的两个不同项目中有相同的文件集合。在具有30或40个项目的解决方案中,这可以使管理文件变得更加容易。例如,您可以看到在修改文件“ECR.h”后,它已被修改的事实显示在两个过滤器文件列表中(名称旁边的小红色复选标记)。

screenshow Visual Studio 2017 Solution Explorer showing same filter duplicated in two projects with same files

© www.soinside.com 2019 - 2024. All rights reserved.