c ++ - Cross platform måde at få adgang til Config dir

Indlæg af Hanne Mølgaard Plasc

Problem



Er der nogen krydsplatform måde at finde ud af, hvilken dir skal være min applikationskonfiguration?


For eksempel bruger Mozilla Firefox/home/user/.mozilla på linux og\% APPDATA\% \ Mozilla på Windows.
http://kb.mozillazine.org/Profile\_folder\_-\_Firefox#Navigating\_to\_the\_profile\_folder[2]


Er der nogen lib, der beskæftiger sig med det, eller er det bare masser af #ifdef?

Bedste reference


Mozilla er en gammel app og har holdt sin konfiguration i $ HOME/.mozilla i temmelig lang tid. Nye apps opfordres imidlertid til i stedet at gemme konfigurationsfiler i $ HOME/.config/myappname.


Jeg ville antage, at de fleste af de generiske tværplatformsbiblioteker har mulighed for at få basekonfigurationsmappen (normalt $ HOME/.config/on Linux og\% APPDATA på Windows). GLib har for eksempel g\_get\_user\_config\_dir (), og alt du skal gøre er at tilføje dit appnavn til resultatet (ikke testet kode): [3]


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;
}

Andre referencer 1


Jeg er bange for at du skal gå på #ifdef måde, haven ikke hørt/set nogen lib, der gør dette.