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

15

我正在编写一个Python库,其中包含一个可由库的用户编辑的每个用户配置文件。该库还会生成日志文件。 在*nix系统中,标准似乎是将这些文件转储到$HOME/.library_name中。

然而,我不确定如何处理Windows用户。在切换到Linux之前,我已经使用Windows多年,似乎应用程序通常要么A)依赖GUI配置(我不想开发),要么B)将配置数据转储到注册表中(这很烦人且不可移植到*nix配置文件中)

目前,我在Windows上也将文件转储到$HOME/.library_name中,但在Windows上这感觉非常不自然。
我考虑将其放入%APPDATA%中,应用程序数据通常存在这里,但这也有其自身的问题。 我最担心的是普通用户甚至可能不知道该目录在哪里(与%HOME /〜不同),并且用户可编辑的配置文件通常不会出现在此处。

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


8
作为一个大部分时间都在使用 Windows 的人,我能说一句话吗:非常感谢你没有把这个放进注册表里。希望配置文件是纯文本的,这样我可以轻松地备份、复制、编辑等等。 - T.J. Crowder
3个回答

15

Python的appdirs包很好地完成了在各种平台上查找应用程序数据标准位置的工作。例如,对于Windows,它使用英语XP位置:

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

在Linux上,它遵循XDG标准:

 ~/.config/<appname>

13

%APPDATA% 是这些文件应该存储的正确位置(可能位于您的库的子目录中)。不幸的是,许多移植到 Windows 平台的 *nix 应用程序并未遵循此规则,导致我的主目录上出现了.cluttering 的 .gem、.ssh、.VirtualBox 等文件夹,并且默认情况下没有被隐藏,这在 *nix 上却不是这样。

您可以为那些不太了解 Windows 目录结构的用户提供一个菜单项(或类似的东西)来为他们打开配置文件进行编辑操作,以使其变得容易。

如果可能的话,请提供 GUI 前端,即使它是相当简单的。Windows 用户将期望有一个“工具”|“选项”菜单项,可弹出对话框,允许他们设置选项,否则他们可能会感到困惑。


1
在Windows上,用户不需要使用可编辑的配置文件来配置应用程序,因此没有标准。
使用GUI可编辑的配置标准是注册表。
如果您正在使用QT(或PyQT?),则可以使用QSettings提供的抽象层。在Linux上,它使用配置文件,在Windows上则写入注册表。

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