Difference between Program Files and ProgramData?

How can I decide which of my application files are in Program Files ( FOLDERID_ProgramFilesX64

) and which are in ProgramData? ( FOLDERID_ProgramData

)? I don't understand what is the reason for splitting my fixed file applications into these two categories or how I am supposed to decide which file is in which.

For example, the image files my application displays, are they "program" or "data"?

Are there any problems with just supplying everything under one or the other?

The app is installed for all users and has no custom configuration or data files.

+3


source to share


1 answer


Program files are for executable files and other static files that are included with the installation. ProgramData is for user agnostic data generated at runtime such as shared cache, shared databases, shared settings, shared settings, etc. User-specific data goes into the AppData folder. Note that they are for data that is not user-visible. User-visible data belongs to the document folder (or music, video, custom sibling folder, etc.).



See Special folders and custom folders for details . Note that the terminology used is slightly different between the name used in the documentation here, the folder name, and the name used by the various enumerations used to get these paths from the system.

+5


source







All Articles