Зачем мне устанавливать программу в C:/ напрямую?

По каким причинам некоторые программы устанавливаются (по умолчанию или даже по требованию) непосредственно в C:/, а не, как большинство, в папку C:/Program Files/?

Кроме того, почему так часто распаковываются драйверы? Я видел много папок Intel, Nvidia, ATI и Xerox на дисках C:/-, хотя для меня нет никакого смысла вообще использовать их по умолчанию, а не на рабочем столе или в других пользовательских папках. Файлы не должны быть обязательными для всей системы, поскольку они являются только временными.

Спасибо!

Изменить: Этот вопрос не о конкретном программном обеспечении, а о причинах, почему имеет смысл отклониться от обычного способа. Я думал, что это может иметь какое-то отношение к серверам, которые должны продолжать работать, но это всего лишь догадка, основанная на фактах вообще, почему серверная программа не должна запускаться из C:/Program Files/, если все разрешения установлены. То же самое возможно для общесистемных необходимых файлов, таких как установочные файлы драйвера.

Очевидно, это касается только Windows.

8 ответов

Решение

Нет реальной технической причины для установки чего-либо в папку непосредственно в папке c:\ или для разархивирования драйвера в папке c:.
Это даже противоречит руководствам по разработке программного обеспечения Windows, опубликованным Microsoft.

Но:
В случае, если пользователю необходимо дать инструкции для ручного запуска чего-либо в этой папке, удобно иметь возможность давать пользователю простые инструкции.
Как: Открыть "Мой компьютер", открыть C:, открыть [папку], а затем открыть программу "Настройка".
Путем принудительного исправления пути он будет одинаковым для всех пользователей, что значительно облегчает жизнь технической поддержке.
Это очень часто имеет место для загрузки драйверов. Все крупные производители, кажется, делают это так.

Я работал в 1-й линии службы поддержки по случаю.
Вы не поверите, сколько пользователей что-то скачивают, распаковывают, получают телефонный звонок в промежутке до 15 минут, не могут вспомнить, где на жестком диске они разместили разархивированные файлы.
Затем они звонят в службу поддержки или техподдержку.
Если вы человек, который обрабатывает эти вызовы, вы очень быстро начнете ценить логику размещения этих файлов непосредственно в C:\

По каким причинам некоторые программы устанавливаются (по умолчанию или даже по требованию) непосредственно в C:/, а не, как большинство, в папку C:/Program Files/?

Некоторые разработчики не следуют стандартным соглашениям, потому что они либо не знают, либо слишком ленивы, чтобы делать вещи "правильно". Многие разработчики-любители также будут жестко кодировать пути в свои программы и / или установщики, а не запрашивать среду (например, %TEMP%, %APPDATA%, %PROGRAMFILES%).

Кроме того, почему так часто распаковываются драйверы? Я видел много папок Intel, Nvidia, ATI и Xerox на дисках C:/-, хотя для меня нет никакого смысла вообще использовать их по умолчанию, а не на рабочем столе или в других пользовательских папках. Файлы не должны быть обязательными для всей системы, поскольку они являются только временными.

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

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

То, что Microsoft переместила папку "Пользователи" в корневой каталог для Vista и 7, вероятно, является хорошим показателем того, сколько людей предпочитают корневой каталог (по умолчанию "c:") на практике.

Пространства Причина в пространствах.

Там есть место в C:/Program Files, Если вы поместите это в команду оболочки как есть, она будет интерпретирована как два отдельных аргумента. C:/Program а также Files, Это, конечно, очень легко исправить, просто цитируя его, "C:/Program Files" или же C:/Program\ FilesОднако некоторым программам это удается. Чтобы обойти эту проблему или облегчить работу ленивых сценаристов, программы иногда устанавливаются в C: непосредственно.

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

Некоторые программы работают со сбоями, когда они существуют в пути с пробелами (например, "Program Files"), поэтому они устанавливаются в корень C:.

Тем не менее, я бы поспорил, что многие программисты были ленивы и просто решили выложить свою программу в C:\ по умолчанию, просто для удобства.

Вы заявляете, что это касается только Windows, но программное обеспечение может быть перенесено в / из других операционных систем. Кроме того, могут быть различия между версиями Windows, например, некоторые переведенные версии Windows также переводят это имя папки, и пользователь также может изменить местоположение (например, вместо "C:\Program Files" я использовал "P:\" для какое-то время). Все это может быть обнаружено программным обеспечением, но проще использовать фиксированное местоположение. Также в случае драйверов может быть необходимо знать, где находятся файлы в то время, когда эта информация недоступна из ОС.

Некоторые старые программы (эра DOS, Win 3.1) не могли принимать пробелы или "длинные" имена в пути, откуда они открываются. Это довольно редко в наши дни, хотя.

Установщики должны получить настройки об установке системы. Предполагается, что эти настройки включают местоположение директории Program Files среди других деталей. Законные программы упакованы в установщики, которые подключаются к этой информации и отслеживают, если вы переходите от предлагаемых по умолчанию настроек.

С другой стороны, драйверы предназначены для обработки операционной системой (Диспетчер устройств-> Обновление драйверов) - если бы они находились внутри установщика, Диспетчер устройств не смог бы получить к ним доступ для их установки. Они не гибки в том, где вы их положили.

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

TLDR; отделить важные программы, от которых другие программы могут зависеть, от обычных программ, таких как игры / браузеры / все остальное, что вы установили.

Я думаю, что еще одна важная причина, по которой люди выбирают установку на C:\, связана с тем, почему они в первую очередь создали Program Files: для разделения программ из системных файлов таким же образом, как создается папка Users, для отделения пользовательских файлов от программы / системы. файлы.

Так что, если разработчик не хочет, чтобы пользователь удалил его, потому что он не помнит, для чего он (думайте, упакованные элементы разработки, такие как аудио-плагины, или целые языки, такие как python / ruby), тогда они устанавливают программу на диск C:\, чтобы вроде как включить его в "системные файлы", но не помещать в папку Windows по понятным причинам.

Я знаю, что это старый пост, но он не заблокирован, и мне было что добавить.

Другие вопросы по тегам