Наши приложения win32 (написанные на С++) существуют уже более 10 лет и не обновлены, чтобы отслеживать "хорошие практики" с точки зрения хранения файлов. Приложение по умолчанию устанавливает в папку "C:\AppName" и сохраняет файлы приложения, файлы конфигурации, загруженные файлы и сохраненные пользовательские документы в подпапках этой папки.
Предположительно, это "лучшие практики" по умолчанию для установки в "c:\Program Files\AppName" в настоящее время. Но если мы это сделаем, где мы должны хранить остальные наши файлы? Начиная с Vista, запись в папку программных файлов проблематична, и, похоже, миллион других мест, которые вы можете поместить в разные файлы, и я в замешательстве.
Есть ли ссылка где-то где идет?
Изменить: Чтобы расширить те вопросы, которые задавали люди до сих пор:
Я знаком с функцией SHGetFolderPath, но есть множество и множество опций, которые вы можете получить от него, и я не могу найти ресурс, в котором говорится: "Вот как это делается для каждого из этих опций, и когда вы захотите его использовать".
До сих пор мы делали "все файлы, в том числе сохраненные файлы пользователя, в одной папке", и все работало нормально - но не тогда, когда люди хотят установить приложение в папке Program Files. По какой-то причине, обезвреживание виртуализации вокруг этой Vista не работает для нашего приложения; если мы все равно будем вносить какие-либо изменения, мы могли бы также сделать попытку сделать что-то "правильным", так как мы не хотим снова менять его через 12 месяцев.
Дальнейший вопрос:
Мы включаем некоторые "примерные" документы с нашим приложением, которые мы обновляем все время от времени. Уместно ли устанавливать их в Мои документы, если мы будем их переписывать каждые несколько месяцев? Или мои документы считаются абсолютно безопасными для пользователей, которые могут возиться?
Если мы не сможем установить их в Мои документы, куда их следует поместить, чтобы пользователи могли легко их видеть?