obwohl 1000 Bytes immer noch 1 MB ergeben und 1000 MB=1 GB
Das stimmt so nicht ganz.
Erstens hast Du die kB in der Aufzählung vergessen, zweitens ist die Umrechnungszahl 1.024 und nicht 1.000. Da aber gelegentlich oberflächlich nur mit 1.000 umgerechnet wird, ergeben sich oft Differenzen in den dargestellten Speicherbelegungen.
Also: 1 GB = 1.024 MB = 1.048.576 kB = 1.073.741.824 Bytes
20 GB sind demnach 21.474.836.480 Bytes
Würde man diese Bytes (oberflächlich) nur mit der Umrechnungszahl 1.000 * 1.000 * 1.000 in GB umrechnen, würde man 21,5 GB erhalten, also 1,5 GB mehr, als es tatsächlich sind. Man sieht, dass bei der Größenordnung, um die es in Deiner Frage geht, sehr schnell Umrechnungsfehler von mehr als 1,5 GB entstehen können.
Dazu kommt noch, dass die Größe einer Datei nicht unbedingt identisch ist mit dem Platz, den sie auf dem Datenträger belegt. (Der belegte Platz ist i.d.R. größer als die Größe der Datei.) Es nützt also nichts, bloß die Dateigrößen zu addieren, wenn man die Belegung eines Datenträgers ermitteln will.
Vielleicht gibt es versteckte Ordner, die nicht erscheinen?
TreeSize berücksichtigt auch versteckte Ordner. Natürlich musst Du es mit Adminrechten starten, sonst können bestimmte Ordner, auf die nur der Admin zugreifen darf, nicht in die Darstellung einbezogen werden.