将用户配置文件放在 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 中的位置的主要内容,如果未能解决你的问题,请参考以下文章