Это - метрика производительности, а также сложность. Как все метрики, это должно быть оценено с осторожностью. Одиночная метрика обычно не достаточна для полного ответа.
IE, 500 программ строки совсем не так же сложны как 5 000 строк. Теперь необходимо задать другие вопросы для получения лучшего представления программы..., но теперь у Вас есть метрика.
Если вы решите, что CSIDL_COMMON_APPDATA
не подходит (возможно, CSIDL_COMMON_APPDATA
- хороший вариант по умолчанию, но вы хотите, чтобы администратор мог изменить местоположение) вы можете попросить установщик записать что-нибудь в HKLM \ SOFTWARE \ <подраздел вашего приложения>
, который указывает желаемый путь к общему каталогу, в котором будут храниться данные.
Альтернативой помещению указателя в реестр HKLM является наличие файла конфигурации, который находится в программном каталоге и имеет указатель на общий каталог. По определению, каталог программы должен быть доступен для записи установщику. s доступен для записи администраторам (которые могут нести ответственность за изменение конфигурации) и доступен для чтения пользователям. Таким образом, стандартный пользователь может прочитать хорошо известное местоположение (либо подключа HKLM, либо файл конфигурации в каталоге программы), чтобы получить указатель на каталог, доступный для записи всем стандартным пользователям.
Независимо от того, что устанавливает общий каталог (программа установки или модуль конфигурации) должны убедиться, что ACL общего каталога настроен соответствующим образом для стандартной пользовательской записи.
Попробуйте открыть папку Public в каталоге профилей пользователей:
CSIDL_COMMON_DOCUMENTS
Изменить: Или используйте
CSIDL_COMMON_APPDATA
, но установите разрешения для группы Authenticated Users, если возможно.
Вероятно, вы ищете CSIDL_COMMON_APPDATA. IIRC, который также должен быть хорошим выбором, если вы пойдете на любую из сертификатов логотипа Windows. Если он не соответствует вашим требованиям, проверьте эту ссылку на MSDN , вы сможете найти там наиболее подходящий вариант.
Удачи.
Можно ли просто использовать фиксированное имя каталога, например c: \ FixedDataForYourProgram
Мы делаем это в XP. Я не пробовал это программно в Vista / Win7, но вошел в систему как обычный пользователь в Vista. У меня нет проблем с созданием каталога под root.
Я уверен, что это нарушает все виды правил, но это просто. Я люблю простое.
options: