VS Code Insiders: Alte Versionsordner unter Windows aufräumen und viele GB zurückholen
Unter Windows sammelten sich im Installationsordner von VS Code Insiders 22 Ordner mit zehnstelligen Hex-Namen an, zusammen etwa 16 GB. Es sind alte Programmversionen aus den täglichen Updates. Ich zeige, wie man den aktiven Ordner erkennt und den Rest löscht.
$ git log --graph Der Weg zur Lösung
-
Problem
Platz auf C: knapp, rund 20 Ordner à 800 MB
Im Programmordner von VS Code Insiders liegen zahlreiche Ordner mit zehnstelligen Hex-Namen.
-
Irrweg
Falscher Pfad
Der vermutete Ordner direkt unter dem lokalen AppData-Ordner existiert nicht; die Installation liegt unter Programs.
-
Irrweg
Größenabfrage über alle Ordner
Die rekursive Größenberechnung dauerte länger als zwei Minuten; das Änderungsdatum der obersten Ebene reichte für die Übersicht.
-
Erkenntnis
Es sind alte Programmversionen
Jeder Ordner ist ein kompletter Programmstand aus einem früheren Update; der jüngste ist der aktive.
-
Lösung
Alle bis auf den aktuellen löschen
Insiders beenden, laufendes Update abwarten, dann per Filter auf zehnstellige Hex-Namen alles außer dem aktuellen Ordner entfernen. Rund 14 GB wurden frei, Insiders startet normal.
Auf einem Windows-Rechner fehlte Platz auf C:. Beim Nachsehen lagen im Programmordner von VS Code Insiders rund 20 Ordner mit Namen wie a1b2c3d4e5, jeder etwa 750 MB groß. Zusammen waren das gut 16 GB. Hier steht, was das ist, wie man den aktiven Ordner erkennt und wie man den Rest sicher entfernt.
Das Problem
Der Ordner liegt nicht dort, wo man ihn zuerst vermutet. Unter %LOCALAPPDATA%\Microsoft VS Code Insiders gibt es nichts. Die Installation (bei einer Installation nur für den eigenen Benutzer) liegt hier:
%LOCALAPPDATA%\Programs\Microsoft VS Code Insiders
Darin liegen neben Code - Insiders.exe, bin und den Uninstall-Dateien lauter Ordner mit zehnstelligen Hex-Namen. Jeder enthält eine komplette Programmversion (etwa 3.200 Dateien, 730 bis 780 MB). Beim Update legt Insiders den neuen Stand in einen neuen Ordner und stellt dann um. Die alten Ordner bleiben stehen.
Die Lösung
1. Ansehen, was da liegt
Erst nur auflisten, nichts löschen. Die Größenabfrage über alle Ordner dauert wegen der vielen kleinen Dateien lange, daher zuerst nur die oberste Ebene:
Get-ChildItem "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders" -Force | Select-Object Name, LastWriteTime | Sort-Object LastWriteTime
2. Aktiven Ordner erkennen
Zwei Wege, die zusammenpassen sollten:
- Laufende Prozesse: Bei geöffnetem Insiders zeigt diese Abfrage, aus welchem Ordner die Prozesse laufen.
- Neuester Ordner: Der Ordner mit dem jüngsten Änderungsdatum ist der Stand des letzten Updates.
$b = "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders"; Get-Process | Where-Object { $_.Path -like "$b\*" } | Group-Object { ($_.Path.Substring($b.Length+1) -split '\\')[0] } | Select-Object Name, Count
Die Versionsnummer eines Ordners steht in resources\app\package.json:
(Get-Content "$b\ordner\resources\app\package.json" -Raw | ConvertFrom-Json).version
3. Alte Ordner löschen
Zuerst VS Code Insiders beenden und warten, bis ein laufendes Update fertig ist (eine Datei updating_version im Programmordner zeigt, dass noch eins läuft). Der Befehl bricht ab, wenn noch ein Prozess aus dem Ordner läuft, und behält den angegebenen Ordner:
$b="$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders"; if(Get-Process | ? { $_.Path -like "$b\*" }){ "Erst VS Code Insiders beenden" } else { Get-ChildItem $b -Directory | ? { $_.Name -match '^[0-9a-f]{10}$' -and $_.Name -notin 'aktueller-ordner' } | Remove-Item -Recurse -Force }
Der Filter ^[0-9a-f]{10}$ trifft nur die Versionsordner. bin, die EXE-Dateien und der Uninstaller bleiben unberührt. Mehrere Namen zum Behalten gehen mit Komma, etwa als Reserve den vorletzten Stand.
4. Prüfen
Get-ChildItem "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders" | Select-Object Name; "{0:N1} GB frei" -f ((Get-PSDrive C).Free/1GB)
Danach VS Code Insiders einmal starten. Bei mir startete es ohne Probleme, und es waren etwa 14 GB mehr frei. Die Einstellungen liegen unter %APPDATA%\Code - Insiders und sind vom Löschen nicht betroffen.
Warum das so ist
Stolperfallen
- Falscher Pfad: Unter
%LOCALAPPDATA%direkt gibt es keinen Ordner dieses Namens, er liegt unterPrograms. Bei einer Installation für alle Benutzer liegt er an anderer Stelle (C:\Program Files), das habe ich nicht ausprobiert. - Update läuft: Löschen während eines Updates kann einen halb installierten Stand hinterlassen. Auf
updating_versionachten. - Größen berechnen dauert: Eine rekursive Größenabfrage über alle Ordner lief bei mir länger als zwei Minuten. Für die Übersicht reicht das Änderungsdatum.
- Auch die Reserve war weg: Ich wollte den vorletzten Ordner als Reserve behalten, nach dem Löschen und dem Start war er trotzdem verschwunden. Warum, habe ich nicht untersucht.