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