Де зберігати свої параметри?
Технології
Є програма, яка повинна зберігати і завантажувати деякі параметри: позицію і розмір головного вікна програми, ідентифікатор вибраної мови, час останньої перевірки оновлення. Я задався питанням - де програма повинна зберігати свої налаштування? Вирішив зібрати інформацію на цю тему і поділиться нею з вами.
Можливі теки, для зберігання параметрів і файлів програми:
• Program Files
• My Documents
• User\Application Data
• User\Local Settings\Application Data
• All Users\Application data
Program Files
Зберігати параметри в теці самої програми не рекомендується, користувачеві банально може просто не вистачити прав на запис і читання каталогу програми. Плюс (вірніше мінус) налаштування користувачів будуть загальними, ніхто не зможе налаштувати програму під себе або зберігати в ній тільки персональні дані.
My Documents
XP: Documents and Settings\User\My Documents
Vista: Users\User\Documents
На мій погляд не вірний підхід. Папку не дарма назвали Мої Документи. Тому, якщо програма не формує будь-яких документів, а повинна всього-лише зберігати свої налаштування, то їм там не місце. Не знаю як Вас, а мене злегка дратують теки всередині теки з документами. Я їх там, між іншим впорядковую, розпихаю по підкаталогах і тут на тобі, заходжу в папку і бачу Visual Studio 2008.
User\Application Data
XP: Documents and Settings\User\Application Data
Vista: Users\User\AppData\Roaming
Файли з цієї теки входять до складу пересувних профілів (roaming profiles, per-user). Тобто. якщо ви бажаєте, щоб ваші програми могли пересуватися разом з профілем користувача, зберігайте їх у цій теці.
User\Local Settings\Application Data
XP: Documents and Settings\User\Local Settings
Vista: Users\User\AppData\Local
У цій теці можна зберігати файли, що не входять до складу переміщуваних профілів (per-user-per-machine), а також тимчасові та великі за розміром файли, переміщення яких або не потрібно (тимчасові, кеш, інше робоче «сміття»), або вимагатиме значних часових витрат (зберігайте файл розміром у пару сотень мегабайт у профілі, що переміщується, і користувач обов'язково скаже вам «спасибі».
All Users\Application data
XP: Documents and Settings\All Users\Application Data
Vista: ProgramData
У цій теці можна зберігати файли, які є спільними для всіх користувачів комп'ютера, наприклад, загальну базу даних, набір загальних документів, кліпарт тощо. Ця тека не входить до складу пересувних профілів (per-machine). Звичайні користувачі (не адміністратори) мають доступ до цієї теки в режимі тільки для читання.