Save application preferences... registry/file?
Where is the best place to store application preferences?
In particular, I'd like to save preferences for a media player such as volume levels and the like. Two candidates spring to mind... file and registry. Which would be more appropriate?
As a follow up to this, I'm also wondering if there are any APIs that aid in creating application specific settings.
Unless someone advises me that this is wrong, I'd like to save stuff either in HKCU... or HKLM/Software/MyCompanyName/MyAppName/Key
for the registry, or in %APPDATA\MyCompanyName\MyAppName\someTypeOfSettingsFile
.
As these seem to be commonly used for such settings, I'd开发者_JAVA技巧 assume that .Net makes it easy to store settings in these locations. Is there a simple high level API that can .Net offer me to read and write settings to these common locations?
Open settings.settings
in your Visual Studio solution; add an application setting (i.e. change scope from 'user' to 'application').
The IDE creates a backing class that you can use in code.
Application Settings
Application Settings Overview
Using Application Settings and User Settings
Application Settings Architecture
The registry should be avoided.
The location of the app.exe.config and user.config files will differ based on how the application is installed. For a Windows Forms-based application copied onto the local computer, app.exe.config will reside in the same directory as the base directory of the application's main executable file, and user.config will reside in the location specified by the Application.LocalUserAppDataPath property. For an application installed by means of ClickOnce, both of these files will reside in the ClickOnce Data Directory underneath %InstallRoot%\Documents and Settings\username\Local Settings.
See Application Settings for Windows Forms. Even though it is about Windows Forms, this can be used for other similar applications.
Don't use the Registry without very good reason.
精彩评论