The Hidden Disk Hogs on Windows Developers Keep Ignoring (And How to Move Them to D:)
If you're a software developer, chances are your C: drive slowly fills up until Windows starts complaining about low disk space—even though you barely store any personal files there.
The real culprit isn't your documents.
It's the dozens of development tools that quietly download SDKs, caches, virtual machines, Docker images, AI models, and package dependencies into your user profile.
Here's a real-world example from my machine.
| Location | Size | What it contains | Safe to reclaim |
|---|---|---|---|
Local\Docker\...\docker_data.vhdx | 15.4 GB | Docker Desktop WSL virtual disk | ⭐ Partial |
Local\Packages | 15.5 GB | Microsoft Store apps + WSL disks | ⭐ Partial |
Local\JetBrains + Roaming\JetBrains | 21.3 GB | IDE indexes, logs, caches | ✅ Mostly |
Local\Android + .android | 12.8 GB | Android SDK + emulator images | ⭐ If unused |
Local\Google | 8.1 GB | Chrome cache & profile | ⭐ Partial |
Local\uv | 6.4 GB | Python uv package cache | ✅ Yes |
Local\Genymobile | 5.5 GB | Genymotion virtual machines | ⭐ If unused |
Roaming\Cursor | 6.0 GB | Cursor chat history & database | ⭐ Partial |
.ollama | 4.4 GB | Local AI models | ⭐ If unused |
.gradle, .m2, npm-cache, pip | ~9 GB | Build/package caches | ✅ Yes |
$Recycle.Bin | 1.8 GB | Trash | ✅ Yes |
In total, over 100 GB was consumed almost entirely by development tools.
Why everything ends up on C:
Most developer tools default to one of these folders:
C:\Users\<user>\AppData\LocalC:\Users\<user>\AppData\RoamingC:\Users\<user>C:\ProgramData
Microsoft recommends applications store user-specific data there, so nearly every IDE, SDK, package manager, and emulator follows the same convention.
The downside?
Your SSD slowly disappears.
Biggest disk consumers
1. Docker Desktop
Typical size
10–100+ GB
Stored in
%LOCALAPPDATA%\Docker
Main offender
docker_data.vhdx
This virtual disk contains
Docker images
Containers
Volumes
Build cache
Move to D:
Docker Desktop →
SettingsResourcesAdvancedDisk image location
Choose
D:\Docker
or recreate the WSL disk there.
2. JetBrains IDEs
Typical size
5–30 GB
Large folders
AppData\Local\JetBrainsAppData\Roaming\JetBrains
Contains
indexes
logs
plugin cache
Gradle cache
local history
Move caches
Add environment variable
IDEA_PROPERTIES
or edit
idea.properties
Example
idea.system.path=D:\JetBrains\systemidea.config.path=D:\JetBrains\configidea.plugins.path=D:\JetBrains\pluginsidea.log.path=D:\JetBrains\logs
3. Android Studio
Usually
10–50 GB
Largest folders
AppData\Local\Android.android
Mostly
SDK
Emulator system images
AVDs
Move SDK
Android StudioSettingsAndroid SDK
Move AVDs
Set
ANDROID_AVD_HOME=D:\Android\AVD
Move SDK
ANDROID_HOME=D:\Android\Sdk
4. Docker + WSL
Many people overlook
AppData\Local\Packages
Inside
ext4.vhdx
WSL distributions can easily reach
20–100 GB
Move WSL
wsl --export Ubuntu ubuntu.tarwsl --unregister Ubuntuwsl --import Ubuntu D:\WSL\Ubuntu ubuntu.tar
Now the virtual disk lives on D:.
5. Python uv
Cache
AppData\Local\uv
Clean
uv cache clean
Move cache
UV_CACHE_DIR=D:\uv-cache
6. Ollama
Models often consume
5–200 GB
Default
C:\Users\<user>\.ollama
Move
OLLAMA_MODELS=D:\Ollama\models
or reinstall using the new location.
7. Maven / Gradle
Large dependency caches
.m2.gradle
Move Maven
MAVEN_OPTS
or
settings.xml
<localRepository>D:/maven/repository</localRepository>
Move Gradle
GRADLE_USER_HOME=D:\Gradle
8. npm
Check cache
npm config get cache
Move
npm config set cache D:\npm-cache --global
9. pip
Move
PIP_CACHE_DIR=D:\pip-cache
10. Cursor
Can grow because of
AI chat history
embeddings
backups
workspace state
Location
AppData\Roaming\Cursor
Currently no official setting for all data, but parts can be relocated using Windows junctions.
Example
mklink /J "%APPDATA%\Cursor" "D:\Cursor"
11. Chrome
Profiles and cache
AppData\Local\Google
Move profile
chrome.exe --user-data-dir=D:\ChromeProfile
Using junctions (works for almost anything)
If an application refuses to let you change its location, Windows junctions are incredibly useful.
Move folder
C:\Users\Adam\.ollama
↓
D:\Data\.ollama
Create junction
mklink /J "C:\Users\Adam\.ollama" "D:\Data\.ollama"
Windows thinks the folder is still on C:, but the data is actually stored on D:.
This works for:
JetBrains
Cursor
Ollama
Android SDK
Genymotion
npm cache
Maven
Gradle
Python caches
almost any development tool
Environment variables worth changing
| Variable | Suggested value |
|---|---|
ANDROID_HOME | D:\Android\Sdk |
ANDROID_AVD_HOME | D:\Android\AVD |
GRADLE_USER_HOME | D:\Gradle |
UV_CACHE_DIR | D:\uv-cache |
PIP_CACHE_DIR | D:\pip-cache |
OLLAMA_MODELS | D:\Ollama\models |
TEMP | D:\Temp |
TMP | D:\Temp |
A good developer folder structure
D:\├── AI│ ├── Ollama│ └── Models├── Android├── Docker├── Gradle├── Maven├── npm-cache├── pip-cache├── uv-cache├── WSL├── JetBrains├── Temp└── Workspace
Final thoughts
Modern development environments generate massive amounts of data automatically. Docker layers, AI models, SDKs, build caches, emulator images, and package managers can quietly consume well over 100 GB on your system drive.
The best long-term strategy is to treat C: as the operating system partition and move bulky, regenerable developer data to D: using built-in settings, environment variables, or NTFS junctions. With a one-time setup, you'll avoid constant low-disk warnings while keeping your development environment fast and organized.
