I need to store some user-specific configuration data for my program. Both Application Data/AppData (in the user's directory) and ProgramData (in the root of the system drive) seem like reasonable places to put it.
What is the difference between Program Data and Application Data and which should I use?
ProgramData is "used for application data that is not user specific," according to Microsoft. For instance, if you install a photo editing tool that contains built-in clip art, it should store these in ProgramData. It wouldn't make sense to have multiple copies of common data spread across multiple user folders.
The ProgramData folder in Windows 11/10 contains all the data, settings, and user files that are required by the installed software and UWP apps. This directory contains application data for all users. This folder is used for application data that is not user-specific.
To put it straight, ProgramData contains application data that is not user specific. This data will be available to all users on the computer. Any global data should be put in here. Roaming - This folder contains data that can move with your user profile from a computer to another.
Programs are collection of instructions interpreted by CPU. File is way of recording data or information in computer. These set of instructions are stored in a file. These are normally stored on hard disk.
To put it straight, ProgramData contains application data that is not user specific.This data will be available to all users on the computer. Any global data should be put in here.
AppData folder contains configuration settings, downloaded information/files for a particular user. So, for example any user specific preferences and profile configurations can be stored in the AppData folder. The AppData folder is further divided into three subfolders
Roaming - This folder contains data that can move with your user profile from a computer to another.
Local - This folder contains data that will not move with your user profile.
LocalLow - You can put in lowlevel access information such as information related to web browser running in a protected mode in this folder.
You can now decide depending on the type of information which would be the best place to store it.
Reference links: Windows CSIDL and AppData
I think you should put all user specific files into appdata since it is located in
C:\Users\UserName\AppData
and Programdata is not specific to the user. It could be used, I think, to share data of your program when used by different users.
see this stackoverflow question
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With