What is the significance of the ProgramData folder in Windows?

WindowsProgramdata

Windows Problem Overview


What is the importance of the ProgramData folder in Windows?

I have noticed that many installed programs store files in a subdirectory of the ProgramData folder. Is there a specific reason for that?

I have to create an installer for my application. Should I store user-level files under ProgramData or under Users?

Windows Solutions


Solution 1 - Windows

The documentation describes the expected use of this folder like this (emphasis mine):

> The file system directory that contains application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. This folder is used for application data that is not user specific. For example, an application can store a spell-check dictionary, a database of clip art, or a log file in the CSIDL_COMMON_APPDATA folder. This information will not roam and is available to anyone using the computer.

Note that this documentation refers to the typical path as per older versions of Windows. In modern versions of Windows it is located in %SystemDrive%\ProgramData.

Rather disappointgly, the above quote is from the now legacy CSIDL documentation. But the documentation for the replacement KNOWNFOLDERID omits the useful descriptions of what you are intended to do with these special folders. So, in order to get to the bottom of questions like this you need to refer to both topics, so far as I can tell.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUllanView Question on Stackoverflow
Solution 1 - WindowsDavid HeffernanView Answer on Stackoverflow