将用户配置文件放在 Windows 中的位置

Posted

技术标签:

【中文标题】将用户配置文件放在 Windows 中的位置【英文标题】:Location to put user configuration files in windows 【发布时间】:2011-01-15 16:17:52 【问题描述】:

我正在编写一个 python 库,该库具有每个用户的配置文件,该库的用户可以编辑该文件。该库还生成日志记录文件。 在 *nix 上,标准似乎是将它们转储到 $HOME/.library_name 中。

但是,我不确定如何处理 Windows 用户。在切换到 Linux 之前,我已经使用 Windows 多年,并且似乎应用程序倾向于 A)依赖 GUI 配置(我宁愿不开发)或 B)在注册表中转储配置数据(开发和*nix 配置文件不可移植)

我目前也在 Windows 上将文件转储到 $HOME/.library_name 中,但这在 Windows 上感觉非常不自然。 我考虑过将其放入 %APPDATA% 中,应用程序数据往往会存放在其中,但这也有其自身的问题。我最担心的是外行用户可能甚至不知道该目录在哪里(不像 %HOME/~),并且用户可编辑的配置文件似乎不会正常进入这里。

Windows 上每个用户可编辑的配置文件的标准位置是什么?

【问题讨论】:

作为一个大部分时间都在使用 Windows 的人,我只能说:感谢您,不要将其粘贴在注册表中。希望配置文件是纯文本,我可以轻松备份、复制、编辑等。 【参考方案1】:

%APPDATA% 是放置这些的正确位置(可能在您的库的子目录中)。不幸的是,很多移植到 Windows 的 *nix 应用程序尊重这一点,我最终得到了 .gem、.ssh、.VirtualBox 等文件夹,这些文件夹使我的主目录变得混乱,并且没有被隐藏默认为 *nix。

即使对于不太了解 Windows 目录结构布局的用户,您也可以通过在编辑器中为他们打开配置文件的菜单项(或类似项)来简化操作。

如果可能,请为该文件提供一个 GUI 前端,即使它非常简单。 Windows 用户将期待一个工具 |选项菜单项,它会弹出一个对话框,允许他们设置选项,如果没有选项,会很不爽。

【讨论】:

【参考方案2】:

在 Windows 上,用户不应该使用可编辑的配置文件来配置应用程序,因此没有标准。 可使用 GUI 编辑的配置标准是注册表。

如果您使用的是 QT(或 PyQT?),那么您可以使用提供抽象层的QSettings。在 Linux 上它使用一个配置文件,而在 Windows 上则是写入注册表。

【讨论】:

【参考方案3】:

pythonappdirs 包很好地找到了各种平台上应用程序数据的标准位置。例如。对于 Windows,它使用英文 XP 位置:

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

在 Linux 上它遵循 XDG 标准:

 ~/.config/<appname>

【讨论】:

以上是关于将用户配置文件放在 Windows 中的位置的主要内容,如果未能解决你的问题,请参考以下文章

在windows xp中,注册用户配置文件保存在哪里?

linux和windows互传文件用户配置文件和密码配置文件用户组管理用户管理

将用户信息放在会话中的啥位置

火狐浏览器配置文件丢失怎么办

修改maven仓库位置

windows services 读取注册表配置文件一般在哪个目录