I think there is a lot of confusion regarding where files, in a windows environment, should end up. A home directory, for each user, first appeared wind the NT-system. The location for this directory is %USERPROFILE%. The idea is to but all user related files inside of this area, in one of its subdirectories.
- Application Data (
%APPDATA%)
- Local Settings
- My Documents
The user can decide to retarget a lot of these directories into other directories. This is good when roaming profiles are in use. Say that you have a lot of files inside your document folder (which you of course have
). Then, to ease the saving of the profile, you can retarget this folder to a common net folder. When you now logout, the My Document folder is not uploaded to your server, making the logout process quicker.
But, a lot of software, there among games, have an annoying idea of putting saved progress in the My Document folder. And in case when this folder is retargeted, one can notice delays when progress is saved by the games, due to the worse performance of networked folders.
Software must use the %USERPROFILE% folders wisely. My Documents are for the user’s own creations, and %APPDATA% for application’s creations. Progress of a game is nothing a user is supposed to edit, or open, himself. Only the application is supposed to touch these files. These kind of files should therefore be put in %APPDATA%.
Also, software, makes bad decisions weather to use %APPDATA% or Local Settings:
%APPDATA% should only be used for settings which can be shared (without a huge amount of extra storage involved) from several machines, in a roaming environment. Caches should never go into %APPDATA%.
- Caches, and other non-settings data, is suitable for
Local Settings.
As you see, %APPDATA% is the place to put application settings, which in the end will/should replace the registry, as described by Application Configuration and the Registry.
Microsoft is making bad judgments as well. For example, Outlook is using Local Settings for its *.pst files, giving the user problem to find his mail, when logging in from another machine. Well, one can say that Microsoft knows the *.pst files can grow big and therefore uses the Local Settings folder… and by the way Microsoft don’t actually support roaming *.pst files. They want us to use Exchange for this matter
Two small blogs regarding the differences can be found here