如何在Visual Studio C++ 2012中创建文件夹

18

我在使用 Visual Studio 2012 和 C++ 开始我的第一个大型项目。我将会把源文件结构化到各自的文件夹中,但是我找不到在哪里可以像在 Windows Explorer 中一样创建真正的文件夹。所以这里是我的问题。

我该如何在我的项目中创建真正的文件夹?


您可以右键单击项目,以获得打开文件夹选项,如果这能让您稍感安慰的话。 - chris
2个回答

26

这个IDE有一个命令叫做 "新建文件夹",即使在项目+添加上下文菜单中也可以看到,当您使用“工具+自定义”查看上下文菜单时可以看到。但是,在C++ IDE中,它是隐藏的,这是有意的。

重要的是要理解为什么它被隐藏。这样可以避免您陷入麻烦,例如当您使用资源管理器创建文件夹时可能会陷入麻烦。

问题在于C++文件的构建方式。完成编译后,它们会产生一个.obj文件。该obj文件存储在其名称为项目设置的目录中。您可以通过 Project + Properties、General、Intermediate Directory设置来查看它。对于单个 .cpp 文件,它是C/C++, Output Files, Object File Name。默认值是 $(IntDir),这是一个宏,告诉编译器使用 Intermediate Directory 设置。在默认设置下,所有 Debug 构建的 .obj 文件都会出现在Debug子目录中。所有 Release 构建的文件都会出现在 Release 子目录中,无论 .cpp 文件存储在何处。

也许您现在已经看到了陷阱。如果您创建一个带有.cpp文件的子目录,那么当该子目录中存在与另一个子目录中相同的.cpp文件名称时,您将会遇到麻烦。它们会产生一个相同名称的 .obj 文件,其中一个会覆盖另一个,即最后编译的那个。这将产生 非常令人费解的链接错误。您将获得重复符号错误,因为最后构建的 .obj 文件被链接了两次,并且缺失覆盖的 .obj 文件的符号。

因此,请放心创建子目录,但要注意此问题。如果发生这种冲突,必须更改 .cpp 文件的 Object File Name 设置。


6
有趣的是,一个默认构建设置容易解决的缺陷被隐藏了,而正是那个暴露这个缺陷的精确功能也被隐藏了... - rubenvb
3
-1 不起作用(对我来说)。我同意 @rubenvb 的观点,以一种悲剧性的方式隐藏该功能以掩盖一个易于解决的“问题”是很有趣的。无论如何,显然没有办法激活(无论是什么单词)该菜单项。我已经尝试过了。那么,到底是什么魔咒? - Cheers and hth. - Alf
4
在解决方案资源管理器中,有一个名为“显示所有文件”的选项,它会将实际的硬盘文件夹显示出来,而不是虚拟过滤器等内容。@Alf说的就是这个。 - Puppy
2
唉,他们确实会在这里打击信使。对我抱怨毫无意义。 - Hans Passant
4
我记录了一个创建文件夹可能会遇到的构建问题,并解释了为什么该命令默认情况下是隐藏的以及如果出现问题应该怎么处理。这显然是想比其他人“给你一把枪,让你对准自己的脚”的回答更有帮助。你认为这并不有用,甚至值得点个踩,这肯定是你的想象力有所欠缺。 - Hans Passant
显示剩余9条评论

1

这有点让人烦恼,但是可以这样做:

在Visual Studio中创建新文件夹。这不会在文件系统中创建新文件夹。将新项目添加到文件夹中。选择项目的正确目录。

例如,如果您的项目位于%Documents%\Project,并且您的新文件夹名称为Folder,则可以在%Documents%\Project\Folder处将新项目添加到该文件夹中。

Visual Studio 2012会将项目放在您想要的文件夹中。如果您添加新项目,它将默认放在同一文件夹中。这就是令人烦恼的地方。如果您为所有项目项创建了3个文件夹,并尝试向每个文件夹添加新项目,则Visual Studio将尝试将所有3个项目放在文件系统中的同一位置(您最后添加新项目的文件夹),同时将项目放入正确的Visual Studio文件夹中。

可能在Visual Studio中有一个设置。我还没有找到它。我也没有认真看过。


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