Header Ads Widget

Responsive Advertisement

What are the different windows ''App data'' folders for?

I'm that sure many of you have at least seen or heard of the 'AppData' folder in Windows, probably while trying to find a configuration file for some program, maybe to change an advanced setting. But there are multiple cryptically named directories in 'Appdata', and

Sometimes what you're looking for is in the 'Roaming' folder, sometimes 'Local', or even the 'LocalLow' folder.

What are the different windows ''App data'' folders for?

But what's the point of these different folders anyway? And how is AppData related to the 'ProgramData' folder you may have also seen elsewhere? we will be solving the mystery in this article. And even if you know what AppData is, we're also going to talk about cool stuff you probably don't know.

What is the AppData folder?

Well, each Windows user has their own, and it's located in C:/Users/[Name]/AppData. It is a hidden folder, so you'll need to enable Hidden Items to see it, which is easy enough to toggle in Windows Explorer at the top, under the 'View' Ribbon.

What are the different windows ''App data'' folders for?

Now ignoring the sub-folders inside it for a minute, simply put, AppData is for storing extra data that programs use or create, that aren't part of the original installation files. So basically when you install a program, usually all the files required to actually run it go into the Program Files directory, which most people are familiar with, and then stuff like configuration files, temporary files, file caches, whatever else go into AppData.

What are the different windows ''App data'' folders for?

Technically this doesn't always have to be the case, but we'll get to that later. One thing you might be wondering is why not just use the Program Files directory where the program is installed, and keep all the settings and files together in one place? Well, there are advantages to keeping it separated. First, remember each user on a Windows PC gets their own AppData folder. If you're installing a program, it can be easier to manage multiple users' settings this way, because you just install it once into Program Files, and those files for actually running the program stay the same, but if a user changes their preferences, those customizations can be stored as in each users' own AppData directory.

What are the different windows ''App data'' folders for?

It's also more secure because users can't access another users' AppData folder, so no one can mess with your files or settings for that program. Also, permissions are different for the User directory and Program Files directory. AppData is within each users' personal directory, so they have access to that. But Program Files is higher up, right in the top-level directory because it has programs meant to be used by all users. But only someone with admin privileges can WRITE to Program Files, so if settings were stored there, users might run into permissions issues if they aren't admins. So instead, it makes way more sense to just keep everyone's settings in their own folder.

What are the different windows ''App data'' folders for?

That being said, there are some exceptions and nuances to this, so let me elaborate. You see technically, a developer could choose not to even use AppData, and put all the user settings in the install directory if they really wanted to. I'm not aware of any advantages of doing this, but maybe if the program requires admin privileges anyway or something. I'll also point out that sometimes, entire programs can be installed right into AppData.

So not just the settings, but the whole program. This can be good if you only want to install the program for one user, but not everyone. Occasionally AppData will be the default install directory for certain programs, but usually, it will either just go into Program Files, or ask the user which.

And fun fact, if you've ever had a program ask if you want to install for "All Users or Just Me", this is what it's asking - if you want to install to Program Files and be accessible to all users, or your individual AppData folder. See, it's all starting to come together now.

What are the different windows ''App data'' folders for?

What are the different windows ''App data'' folders for?

What are the different windows ''App data'' folders for?

So going forward if you're trying to find where a program is installed and can't find it in Program Files, don't be surprised if it's in the AppData folder somewhere.

1. Roaming & Local Folders

What are the different windows ''App data'' folders for?

Ok so now we know what the AppData directory is for in general, but what about those three subfolders, Local, LocalLow, and Roaming? Well, all three folders basically do hold the same types of files - User Specific Files, and settings, preferences, some temporary stuff, whatever. But each folder serves a slightly different purpose, but only sometimes. So first, let's go over Local and Roaming since those are the most commonly used.

The local folder is the most basic, and it's called Local because it's meant for files that just stay on that particular computer. Though it's easier to understand when you compare it to the Roaming folder, which is meant for files that potentially need to follow the user, in a domain environment, and that's the key. This could probably be a whole article itself, but simply put, a Windows Domain is where lots of computers are all centrally managed, like for a company or school.

The organization creates a set of common rules and policies which are applied to all computers in that domain, then users get accounts created that can usually work on all computers part of that domain. These computers are also typically locked down, and the users don't have admin privileges, so they might not be able to install stuff for example. But, users are able to access their account on not just one, but many computers, again like in a school or company.

So going back, the Roaming folder's purpose is to store app data that will be synced and accessible to a user no matter what computer on the domain they're logged into. If you're given a personally assigned laptop, theoretically the files in the roaming folder should also show up if you log into a desktop at work or a computer lab, or whatever. The Local folder, on the other hand, is just the opposite.

Those files do not follow you and stay only on that computer. So now the names probably make more sense. Roaming is for files that roam around different computers, and local is just local to that one computer. Now I know many of you are thinking, wait for a second, my computer is just mine, it's not part of any work or school domain and I'm the admin, so why do I still have a Roaming folder being used, with stuff in it?

Well, the Roaming folder still exists even if you are not part of a domain - It just houses files that WOULD be synced if you WERE a user on a domain. But if you aren't, the Roaming and Local folders do exactly the same thing. But that still leaves some questions... If they do the same thing, why do some programs use Local while others use Roaming, or even both at the same time, even if the user is not in a domain?

Well, it's basically for compatibility and consistency. If a program is designed to correctly put roaming files into the Roaming folder whether a user is in a domain or not, that means it will work in both scenarios no matter what. This also ensures that files will have the same file path no matter the environment. This also means any documentation about the program and the locations of files will always be consistent, for example.

what or who actually determines what goes into which folder?
And that is completely up to the developer. If you're looking at the settings folder for a specific program, there's basically no way to know whether they got put in local or roaming without looking. The developer might not care about settings getting synced, and just put it in local, other developers may figure, just put it in roaming, why not.

More confusingly, some developers may use both folders for one program. For example Adobe here, there are lots of program's folders in both - Photoshop, CameraRaw, probably more, in both Roaming and Local. I will also point out though, that sometimes, for example, large files will specifically be put into Local, even if it would be ideal if it could be synced because they'd be slower to sync across a domain and other stuff like that where it definitely would be better to keep it local.

So basically there's no hard rule for which folder a program will use, so you just gotta check both. And actually, many programs don't even use AppData and may put settings and stuff in your User Documents directory. A lot of video games do this with save files because users are more likely to know to look in Documents than the hidden AppData.

2. LocalLow Folder

What are the different windows ''App data'' folders for?

Alright so onto the third folder in AppData, LocalLow. This one is actually the same as Local, but with the so-called "Low Integrity Level". Now, Windows Integrity Levels could also probably be an entire article. Basically though, integrity level means the trustworthiness or privilege of an object or program. There are several different levels. Low is very restricted in which files and folders it can access and write to, Medium is regular user rights, High is admin privileges, and System Integrity level is like root, it can do everything.

But there are also two others, 'Untrusted which is even under Low', and Installer which is special and beyond the scope of this article. Anyway, each level can only access its own level and lower. So certain higher-risk programs will run as 'low integrity' to ensure more security because it highly restricts what files and folders it can access. For example, web browsers may run in Low or even Untrusted, so if the program or something it downloads is infected, it's isolated to specially designated Low Integrity folders.

And actually using the Process Explorer program, you can the integrity level of different running programs, and you can see that most of Google Chrome, for example, is running in 'Untrusted'. And like I mentioned, yep, the LocalLow folder is designated as Low Integrity, so low integrity programs can only write into there, which keeps it away from the rest of the more trusted files.

3. ProgramData Folder

What are the different windows ''App data'' folders for?

But wait, there is one more folder that is related to AppData, which is ProgramData. Unlike AppData, which is in each user's directory, ProgramData is actually stored in the top level of the drive just like program files. Specifically, it's found in C:/ProgramData. If you go into it, you'll see even more settings folders for programs, and some we already saw in both Local AND Roaming already! I mean seriously, another one?!

But alas, ProgramData does actually serve a purpose. It's for program data and files that again aren't part of the base installation, but also not user-specific, but rather stuff that's for all users, so there's no sense in putting them in any one User directory. So basically, ProgramData is for resources that will be used by the program and shared by all users.

For example, a program might download a dictionary file that it can use no matter what user is logged in, and it isn't something an individual user will change, so it goes into ProgramData. Or maybe an antivirus will do a scan and put the results log into ProgramData so the results are accessible no matter who's logged in.

Stuff like that. Another fun fact, in Windows XP, ProgramData used to be the directory "C:/Documents and Settings/All Users/Application Data". And these days, if you try to go to "C:/Users/All Users", it will just redirect you to ProgramData.

What are the different windows ''App data'' folders for?

And if a program tries to write to 'All Users', which doesn't actually exist anymore, it just also writes it into ProgramData instead. So it's for backward compatibility with old programs made for XP.

Why is Roaming the Default?

Now there's one final thing you might be wondering... If you are already familiar with Windows, you might know that the shortcut for AppData is %AppData%.

What are the different windows ''App data'' folders for?

If you type that into the start menu, it even takes you right to it. But actually, it goes to the Roaming folder, why is that? Well, supposedly the Roaming folder is usually considered the default. A developer can choose which to use, but apparently, the common practice is to just use Roaming unless you have a reason to use Local. There's also a variable for local too, but it's %LocalAppData%, and I'm not aware of one for the LocalLow folder though.

The reason there's no shortcut to the top AppData folder is that no program should ever write in there, and always needs to go into one of the subfolders anyway. So now, you should be an expert on what all those weird folders are for. If you found it helpful then share it with your friends and let me know in the comment section.

Post a Comment


class='back-top' title='Back to Top'/>