
wxWidgets 解决配置文件难题wxWidgets 与乌克兰人民和国际社会站在一起。导航链接主页关于概述、截图、翻译、团队、许可证下载文档书籍、参考手册、常见问题解答、社区维基、教程支持问题跟踪器、邮件列表、论坛、IRC 频道、商业支持开发者资源、代码仓库、编码规范、开发者博客、编程夏令营致谢。历史遗留问题[XDG 基础目录规范](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) 长期是 Linux 下组织应用程序数据文件的标准但 wxWidgets 存在时间更久。早在 1997 年为其添加配置文件支持时常见做法是将“点文件”直接放在用户主目录。名为 myapp 的应用程序默认用 ~/.myapp 作配置文件且默认设置不能随意改否则现有应用程序会“丢失”配置文件惹恼用户。不过若不担心现有应用程序配置文件丢失应用程序可调用代码wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG);这样新文件会创建在符合 XDG 标准的 ~/.config 目录若定义了 $XDG_CONFIG_HOME 变量则用该变量指定目录。但这没完全解决问题因要知道此方法才能在新应用程序中添加调用其他应用程序仍面临处理现有安装的难题。新改变带来新希望wxWidgets 最近两项更改解决了问题。一是从 wxWidgets 3.3.0 版本开始wxFileConfig 默认在 ~/.config 目录下创建新文件前提是主目录无现有点文件。这种方式有广泛向后兼容性现有安装不受影响若主目录有文件则仍用该文件应用程序首次在新系统运行时会避免污染主目录将文件创建在 ~/.config 目录。二是若想为现有应用程序用户更改配置文件位置只需调用新的 [wxFileConfig::MigrateLocalFile()](https://docs.wxwidgets.org/latest/classwx_file_config.html#a11ccb0d85d3d5982130372b9a653d66d) 函数。若不存在 ~/.config/.myapp 文件不执行操作若存在会将文件移到 ~/.config/myapp/myapp.conf但可能失败需检查错误。若迁移成功wxFileConfig 默认用新的、符合 XDG 标准位置的文件无需特殊操作。总结wxFileConfig 默认行为成了多数人期望的创建新文件无需额外操作迁移现有文件只需添加函数调用。若想保留旧行为创建 wxFileConfig 时需指定 wxCONFIG_USE_HOME 标志。希望 2024 年wx 应用程序停止在主目录使用配置文件。评论及其他链接请启用 JavaScript 以查看评论。博客存档快速链接wxWidgets 中的 Hello World、在线手册、社区维基、报告错误、GitHub 仓库、开发路线图关注我们新闻 RSS 订阅、开发者博客