Jump to content

AppData, roaming or local on standalone user profile


seahorser

Recommended Posts

I don't have roaming profiles but on a new user which belongs to administrators group, the AppData goes to C:\Users\username\AppData\Roaming. I think that it should be C:\Users\username\AppData\Local
Which system settings affect that? Which one is the correct?

Link to comment
Share on other sites


I'm not sure I understand the question...Roaming folder always exists regardless of whether you use its "roaming" properties or not...AFAIK those properties are applicable to domain environments. Programs store their data in whichever folder developer decided to be appropriate for the data their program stores...Local is supposed to store data specific to computer or data that wouldn't make sense to carry to another computer like caches while Roaming folder holds data that may be carried to another computer.

Usually, %APPDATA% points to C:\Users\username\AppData\Roaming while %LOCALAPPDATA% points to C:\Users\username\AppData\Local.

Edited by UCyborg
Link to comment
Share on other sites

Also imagine a program installer needing to be designed to not only support home users but users within a domain, is more likely to use %APPDATA% variable for compatibility. Since a standalone PC can still work fine with data in Roaming, while a domain-joined computer may experience a problem if a program only used %LOCALAPPDATA% variables and a user does actually use roaming profiles.

Link to comment
Share on other sites

On 7/14/2021 at 12:26 AM, UCyborg said:

I'm not sure I understand the question.

Since I came from the XP where there is no roaming folder inside the appdata or LOCALAPPDATA variable (eg. the set console command (cmd) indicates that appdata points to C:\Documents and Settings\username\Application Data), now it's clear why they had to change that. It must be cache data that had different usage from the user settings. Probably XP wasn't able handle cache/user data that efficient on true roaming profiles which reside on a server. Wonder why they don't see that at the XP era. Anyway the overwhelming majority don't use domain server and roaming profiles.

Link to comment
Share on other sites

Perhaps it does explain why domain profiles often became corrupted on XP and 2000 systems often. Back then, people only learned of the term "Roaming Profiles" because their local profile would get corrupted and Windows would log in with the Roaming Profile that it pulled from the network. At one place I did some work at, they had a network "policy" (aka they told users to do it but you know how that goes) to never save anything into My Documents in order to keep the local profile size (and the synced version) down as they found that once profiles got larger than say... the amount of physical RAM on the system, the local profile would get corrupted. In their investigation of local profile corruption, they were seeing local user folders (or just My Documents) at 1-2 GB in size. There is also the situation where profiles were then syncing files that didn't need to be copied over, so them making these 3 folders to sort the different types of data does make sense.

Link to comment
Share on other sites

MS reorganized folder structure and started using KNOWNFOLDERID constants in their code and new APIs while keeping old CSIDL constants and APIs for compatibility. The folders we know today as AppData\Local and AppData\Roaming predate Windows XP, only location/naming was changed.

Vista+ also comes with junctions for compatibility with sloppier programs using hardcoded paths from XP era.

  • CSIDL:
    CSIDL_APPDATA

    KNOWNFOLDERID:
    FOLDERID_RoamingAppData

    XP path: C:\Documents And Settings\username\Application Data
    Vista+ path: C:\Users\username\AppData\Roaming
     
  • CSIDL:
    CSIDL_LOCAL_APPDATA

    KNOWNFOLDERID:
    FOLDERID_LocalAppData

    XP path: C:\Documents and Settings\username\Local Settings\Application Data
    Vista+ path: C:\Users\username\AppData\Local

The lack of LOCALAPPDATA environment variable on XP might be an issue for a batch script, but not regular applications that normally use Shell APIs.

Edited by UCyborg
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...