Под Windows используйте %APPDATA%\appname
. Под * NIX используйте ~/.appname
. Не используйте фиксированные имена каталогов на любой платформе, поскольку домашний каталог пользователя может отличаться от заданного по умолчанию (например, он может быть в сети).
Что касается формата, используйте то, что вы считаете лучшим. Это решение, которое только вы можете принять в контексте вашей заявки. Нет необходимости и, действительно, нецелесообразно иметь «стандартный» способ сделать это, если этот «стандартный» способ не является лучшим для вашей конкретной программы.
Например, XML / JSON может быть хорошим способом хранения пользовательских данных / конфигурации, если ваше приложение уже использует XML / JSON для чего-то другого. Но если это простой файл конфигурации, зачем добавлять раздув в свое приложение, вводя зависимость? В этом случае, вероятно, лучше всего использовать простой текстовый файл со var: value\n
строками.
РЕДАКТИРОВАТЬ: Существует не «лучший» портативный способ, так как ОС используют для этого очень разные соглашения. Не нарушайте стандарты ОС без кровавой причины.
РЕДАКТИРОВАТЬ 2: Если вы обнаружите, что устанавливаете общесистемную настройку в /etc
или HKEY_LOCAL_MACHINE
, спросите себя, действительно ли настройка глобальна. Затем подождите 5 минут и спросите себя снова. Если ответ все еще положительный, то непременно сделайте глобальную настройку. Помните, что обычный пользователь не имеет права на запись /etc
или HKEY_LOCAL_MACHINE
, делая это, вы гарантируете, что кто-то без прав администратора не сможет установить ваше приложение.