Есть программа, которая должна сохранять и загружать некоторые настройки: позицию и размер главного окна программы, идентификатор выбранного языка, время последней проверки обновления. Я задался вопросом — где программа должна хранить свои настройки? Решил собрать информацию на эту тему и поделится ею с вами.
Возможные папки, для хранения настроек и файлов программы:
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). Обычные пользователи (не администраторы) имеют к этой папке доступ в режиме только для чтения.
Возможные папки, для хранения настроек и файлов программы:
- 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). Обычные пользователи (не администраторы) имеют к этой папке доступ в режиме только для чтения.