跨平台访问配置目录的方法

3
2个回答

3
Mozilla是一个老应用程序,长期以来一直将其配置保存在$HOME/.mozilla中。然而,鼓励新的应用程序将配置文件存储在$HOME/.config/myappname中。
我认为大多数通用跨平台库都有一种获取基本配置目录的方法(通常在Linux上为$HOME/.config/,在Windows上为%APPDATA)。例如,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;
}

你知道除了GLib之外还有其他选项吗?我不想依赖GLib... - André Puel
1
为什么不呢?这是一个非常小的库,依赖性很少,可以帮助编写干净的跨平台代码。关于其他选项 - Qt有一个完整的配置保存类:http://doc.qt.nokia.com/stable/qsettings.html,并且它还有一种跨平台的获取主目录的方法:http://doc.qt.nokia.com/stable/qdir.html#homePath - kalev

1

我恐怕您必须使用 #ifdef 的方式,没有听说/看到任何库可以做到这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接