AppData is eating your C: drive: how to find what is big and what is safe to clear
By Bhavik · Sources checked October 3, 2026
If your C: drive is full and you can't work out why, check AppData. It is hidden by default, it holds data from every app you have ever installed, and Windows never shows you a total for it. Here is how to measure it, what usually lives in there, and how to clean it without breaking anything.
What the three folders are
Windows has three per-user AppData folders (Known Folders):
| Folder | Default path | What it is for |
|---|---|---|
| Local | %LOCALAPPDATA% (%USERPROFILE%\AppData\Local) | Data that belongs to this PC: caches and large app data. It does not follow you to other devices. |
| LocalLow | %USERPROFILE%\AppData\LocalLow | Data for apps running with low integrity, such as some browser components. |
| Roaming | %APPDATA% (%USERPROFILE%\AppData\Roaming) | Settings and data meant to follow your profile between computers on a domain. |
The notes on what each one is for come from Microsoft's community answers on Local, LocalLow and Roaming. In practice the big stuff is almost always in Local. You can open it by pasting %LOCALAPPDATA% into the File Explorer address bar.
Step 1: find the biggest folders
File Explorer won't show folder sizes, so measure them. This script adds up every top-level folder in Local and shows the 15 biggest. -Force includes hidden and system files, and -ErrorAction SilentlyContinue skips folders you can't read (Get-ChildItem, Measure-Object).
Get-ChildItem -LiteralPath $env:LOCALAPPDATA -Directory -Force |
ForEach-Object {
$bytes = (Get-ChildItem -LiteralPath $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
[pscustomobject]@{ Folder = $_.Name; GB = [math]::Round($bytes / 1GB, 2) }
} | Sort-Object GB -Descending | Select-Object -First 15It takes a minute or more on a big profile. For Roaming, swap $env:LOCALAPPDATA for $env:APPDATA. The result tells you where to look. It is not a list of things to delete.
Step 2: know what you are looking at
| Location | What it is | Safe to clear? |
|---|---|---|
%LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\ext4.vhdx | The virtual disk of a WSL 2 distro installed from the Store | Not by deleting files. Microsoft says not to modify, move or open WSL files in AppData with Windows tools, because you can corrupt the distro. Free space inside Linux, then compact the disk. |
%LOCALAPPDATA%\npm-cache | npm's download cache | Yes. It is only copies, and packages download again on the next install. |
%LOCALAPPDATA%\NuGet\v3-cache | NuGet's HTTP cache | Yes, with dotnet nuget locals http-cache --clear. |
%TEMP%\NuGetScratch | NuGet temporary files | Yes, with dotnet nuget locals temp --clear. |
| Temporary files | Scratch files left behind by Windows and apps | Yes, through Settings > System > Storage > Temporary files or Storage Sense. Don't delete random folders. |
| Per-app folders (browsers, chat apps, game launchers, IDEs) | Caches and local data, named after the app | Only the cache subfolders, and only after you close the app. Use the app's own clear-cache option if it has one. |
The WSL path comes from Microsoft's WSL disk-space page, which also shows how to look up the exact path for your distro (WSL disk space). NuGet's locations and commands are in Microsoft's NuGet docs (NuGet folders), and the npm cache location is in npm's docs (npm cache).
Rules before you delete anything
- Don't delete a whole app folder to "reset" it. You lose its settings, logins and sometimes its data.
- Be extra careful in Roaming. It mostly holds settings, not cache.
- Close the app first. Files in use can block the delete or leave the app half broken.
- Use the proper route when there is one: the app's own clear-cache option, Storage Sense, or the package manager's cache command.
- If you don't recognise a folder, search its name before you touch it. Folders left by apps you uninstalled ages ago are the safest to remove, but make sure the app is really gone.
Where developers lose the most
On a dev machine the biggest entries are usually a WSL distro's virtual disk and tool caches. These guides cover them: Why your WSL2 disk file never shrinks, Where Docker Desktop's disk space goes and How to clear npm, pip and NuGet caches.
Doing it without the command line
SpaceFree measures the developer-related items from this list: WSL2 and Docker virtual disks, package caches, IDE and build tool caches, and temp files. It shows each size and tags every item as safe to delete, rebuildable or not cleanable before anything is removed, and deletions go to the Recycle Bin by default. Download SpaceFree.
Sources
- KNOWNFOLDERID (Microsoft Learn)
- Difference between Local, LocalLow and Roaming folders (Microsoft Q&A)
- How to manage WSL disk space (Microsoft Learn)
- How to manage the global packages, HTTP cache, temp folders in NuGet (Microsoft Learn)
- npm cache (npm Docs)
- Get-ChildItem (Microsoft Learn)
- Measure-Object (Microsoft Learn)
Find hidden disk space automatically
SpaceFree scans for WSL2 and Docker virtual disks, package caches, node_modules and build output, and shows what is safe to delete. Free for 7 days, no credit card.
Download SpaceFree for Windows