Кроссплатформенный способ доступа к Config dir - PullRequest
3 голосов
/ 07 августа 2011

Есть ли какой-нибудь кроссплатформенный способ узнать, какой каталог должен быть в конфигурации моих приложений?

Например, Mozilla Firefox использует /home/user/.mozilla в Linux и% APPDATA% \ Mozilla в Windows. http://kb.mozillazine.org/Profile_folder_-_Firefox#Navigating_to_the_profile_folder

Есть ли какая-нибудь библиотека, которая занимается этим, или это просто много #ifdef?

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Mozilla - старое приложение, и оно довольно долго сохраняет свою конфигурацию в $ HOME / .mozilla. Однако новым приложениям рекомендуется хранить файлы конфигурации в $ HOME / .config / myappname.

Я бы предположил, что большинство универсальных кроссплатформенных библиотек имеют способ получения каталога базовой конфигурации (обычно $ HOME / .config / в Linux и% APPDATA в Windows). Например, GLib имеет g_get_user_config_dir () , и все, что вам нужно сделать, это добавить имя вашего приложения к результату (непроверенный код):

gchar *
myapp_get_config_dir ()
{
    const gchar *user_config_dir;
    gchar *my_config_dir;

    user_config_dir = g_get_user_config_dir ();
    my_config_dir = g_build_filename (user_config_dir, "myappname", NULL);

    return my_config_dir;
}
1 голос
/ 07 августа 2011

Боюсь, вы должны идти по пути #ifdef, я не слышал / не видел никакой библиотеки, делающей это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...