Расположение для размещения пользовательских файлов конфигурации в Windows - PullRequest
8 голосов
/ 11 февраля 2010

Я пишу библиотеку Python, в которой есть файл конфигурации для каждого пользователя, который может быть отредактирован пользователем библиотеки. Библиотека также генерирует файлы журналов. В * nix стандарт, по-видимому, заключается в том, чтобы вывести их в $ HOME / .library_name.

Однако я не уверен, что делать с пользователями Windows. Я использовал Windows много лет, прежде чем перейти на Linux, и кажется, что приложения, как правило, либо A) полагаются на конфигурацию графического интерфейса (который я бы не хотел разрабатывать), либо B) сбрасывают конфигурационные данные в реестр (что раздражает при разработке и не переносимо с файлами конфигурации * nix)

В настоящее время я также выгружаю файлы в $ HOME / .library_name в Windows, но в Windows это выглядит неестественно.
Я подумал о том, чтобы поместить его в% APPDATA%, где данные приложения обычно живут, но у этого есть свои проблемы. Больше всего меня беспокоит то, что непрофессионалы могут даже не знать, где находится этот каталог (в отличие от% HOME / ~), и редактируемые пользователем файлы конфигурации, похоже, не помещаются здесь нормально.

Каково стандартное расположение редактируемых файлов конфигурации для каждого пользователя в Windows?

Ответы [ 3 ]

10 голосов
/ 11 февраля 2010

% APPDATA% - правильное место для них (возможно, в подкаталоге вашей библиотеки). К сожалению, значительное количество * nix-приложений, портированных на Windows , не не соблюдают это, и я получаю папки .gem, .ssh, .VirtualBox и т. Д., Которые загромождают мой домашний каталог и по умолчанию не скрыты. как на * nix.

Вы можете упростить это даже для пользователей, которые мало знают о макете структуры каталогов Windows, с помощью пункта меню (или аналогичного), который открывает для них файл конфигурации в редакторе.

Если возможно, предоставьте графический интерфейс GUI для файла, даже если он довольно простой. Пользователи Windows будут ожидать Инструменты | Элемент меню «Параметры», который вызывает диалоговое окно, позволяющее им устанавливать параметры, и не будет лишним, если его не будет.

8 голосов
/ 17 ноября 2012

Пакет python appdirs отлично подходит для поиска стандартного места для данных приложений на различных платформах. Например. для Windows используется английская версия XP:

C:\Documents and Settings\<User>\Application Data\Local Settings\<AppAuthor>\<AppName>

, а в Linux он соответствует стандарту XDG:

 ~/.config/<appname>
1 голос
/ 11 февраля 2010

В Windows пользователь не должен настраивать приложение, используя редактируемые файлы конфигурации, поэтому стандарт не существует.
Стандарт для конфигурации, которая редактируется с помощью графического интерфейса пользователя, - это реестр.

Если вы используете QT (или PyQT?), Тогда вы можете использовать QSettings, который обеспечивает уровень абстракции. В Linux он использует конфигурационный файл, а в Windows пишет в реестр.

...