Location to put user configuration files in windows

余生长醉 提交于 2019-12-18 13:17:42

问题


I'm writing a python library that has a per-user configuration file that can be edited by the user of the library. The library also generates logging files. On *nix, the standard seems to be to dump them in $HOME/.library_name.

However, I am not sure what to do with Windows users. I've used windows for years before switching to Linux and it seems that applications tended to either A) rely on GUI configuration (which I'd rather not develop) or B) dump configuration data in the registry (which is annoying to develop and not portable with the *nix config files)

I currently am dumping the files into the $HOME/.library_name on windows as well, but this feels very unnatural on Windows.
I've considered placing it into %APPDATA%, where application data tends to live, but this has its own problems though. My biggest concern is that lay users might not even know where that directory is (unlike %HOME/~), and user-editable configuration files don't seem to go here normally.

What is the standard location for per-user editable config files on windows?


回答1:


%APPDATA% is the right place for these (probably in a subdirectory for your library). Unfortunately a fair number of *nix apps ported to Windows don't respect that and I end up with .gem, .ssh, .VirtualBox, etc., folders cluttering up my home directory and not hidden by default as on *nix.

You can make it easy even for users that don't know much about the layout of the Windows directory structure by having a menu item (or similar) that opens the configuration file in an editor for them.

If possible, do provide a GUI front-end to the file, though, even if it's quite a simple one. Windows users will expect a Tools | Options menu item that brings up a dialog box allowing them to set options and will be non-plussed by not having one.




回答2:


The python appdirs package does a nice job of finding the standard place for application data on various platforms. E.g. for Windows it uses the English XP location:

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

and on Linux it follows the XDG standard:

 ~/.config/<appname>



回答3:


On windows the user is not expected to configure an application using editable config files so there is no standard.
The standard for configuration which is editable using a GUI is the registry.

If you're using QT (or PyQT?) then you can use QSettings which provide an abstraction layer. On Linux it uses a config file and on windows is writes to the registry.



来源:https://stackoverflow.com/questions/2243895/location-to-put-user-configuration-files-in-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!