Структура каталога проекта потеряна в Visual Studio?

Я изучаю сообщество Visual Studio 2015. Я опытный программист, но новичок в VS, и представление файла меня сбивает с толку. Я создал решение и добавил существующий проект. VS показывает мне все файлы проекта (в моем случае проект С++, поэтому .c, .cpp и .h файлы) на одном уровне дерева в обозревателе решений.

В отличие от этого, если я открою проект в чем-то вроде Sublime Text, VS Code, notepad ++ и т.п., я вижу правильную структуру каталогов, поскольку он находится на диске; как можно было бы увидеть его в File Explorer/Finder или ls/dir в терминале.

Я сделал свою домашнюю работу, прежде чем отправил сообщение, и в следующем потоке @Andrey заявляет:

Я боюсь, что такого понятия в MSVS, как "directory структуры". Кроме того, MSVS действительно не нуждается в нем, потому что он использует плоские проекты и иерархии основаны на уровне проекта, а не на файла/каталога.

Как нет такой вещи - вы не можете получить ее автоматически ни вручную. MSVS имеет папки с решениями, которые совершенно разные и нет смысла выражать реальные папки в качестве решения папки.

Visual Studio в качестве браузера кода: как сохранить структуру каталогов?

Это правда? В расположении файлов много смысла, и плоское представление в VS делает проект более сложным для понимания; расположение файлов в структуре каталогов важно. Есть ли способ просмотреть правильную структуру каталогов в VS?

В моей ситуации я работаю с Quickfix, который поддерживает несколько версий (4.0, 4.1, 4.2 и т.д.). Каждый из них имеет разные классы и файлы с тем же именем.

Как вы можете видеть на снимках экрана ниже, все они аккуратно расположены в разных папках на диске, но VS-представление этих файлов очень запутывает:

введите описание изображения здесь

введите описание изображения здесь

Ответ 1

Я нашел ответ, данный @Paul Easter в нижеприведенном разделе, очень полезный для понимания этой "причуды", которая на самом деле является "особенностью". Разработана другая концепция структуры проекта:

Но по той причине, что вы не хотите, чтобы папки решений отображались как "физические" папки - это то, что макет решения может не обязательно используйте ту же конвенцию, что и ваш макет управления исходным кодом. Решение папки позволяют настраивать иерархию ваших проектов, чтобы вы можете группировать проекты и элементы вместе, как вам угодно, а затем решить, что вам не нравится, и изменить его снова, не нужно идти через кошмар движущихся элементов управления источником вокруг и раздражая остальных членов вашей команды.

Папка решений Visual Studio в качестве реальных папок

Это хорошая идея? Я вижу, что некоторым людям это нравится, так как это позволяет им компоновать файлы проектов по своему усмотрению. На данный момент мне это не нравится; Я уверен отчасти потому, что это ново для меня, но и по двум причинам:
1. В организованном проекте иерархия каталогов не является произвольной; Главный инженер упорядочивает файлы определенным образом по уважительным причинам.
2. Он добавляет слой абстракции между представлением VS файла и структурой операционной системы. Мне нравится прямой доступ к файлам, над которыми я работаю; с системой VS, я чувствую себя странно и устрашающе отключен от базовых файлов в VS. Я должен признать, что этот слой имеет свои аномалии и вызовет проблемы для меня.