4

Какие пути гарантированно существуют в экземпляре Windows Server 2008 R2? Клиент требует, чтобы в некоторых инструкциях были указаны точные пути во всех случаях. (Человек, выполняющий указанные инструкции, не должен сам выбирать какой-либо путь, даже если этот путь не имеет абсолютно никакого значения.) Поэтому мне нужно знать, на какие пути я могу рассчитывать, чтобы быть там. Мне хорошо, если они включают переменные окружения, но они должны быть переменными, гарантированно содержащими существующий путь. (То есть никакая модификация пути, который не существует, невозможна.)

Или нет гарантированных путей?

2 ответа2

6

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

% HOMEPATH% - указывает на домашний каталог текущего пользователя, вошедшего в систему. Этот путь всегда будет доступен для записи пользователю, поэтому у вас не будет проблем с разрешениями, если пользователи будут сами устанавливать программное обеспечение.

% HOMEDRIVE% - указывает на диск, на который была установлена система (обычно C:, но может измениться). Это не лучший вариант для установки, групповая политика часто запрещает пользователям писать здесь.

% PROGRAMFILES% - папка с файлами программы по умолчанию, общее место для установки.

2

Используйте Windows API SHGetSpecialFolderPath(), чтобы получить путь, соответствующий любому из различных символических имен специальных папок. Например, вызов его в CSIDL_DESKTOPDIRECTORY гарантирует вам локализованное имя каталога рабочего стола пользователя. Я использовал этот API для создания утилиты каталогов, включенной в оболочку Hamilton C, которую я, в свою очередь, использую, чтобы знать, куда поместить вещи во время установки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .