Freien Speicherplatz ermitteln

Erstellt oder kopiert man Dateien, insbesondere wenn das auf Wechseldatenträgern oder einem gemeinsam genutzten Netzlaufwerk geschieht, steht man zuweilen vor dem Problem, dass nicht genügend Speicherplatz zur Verfügung steht. Ohne entsprechende Fehlerbehandlung bricht der code ab, der Anwender bekommt eine VBA-Fehlermeldung. Sinnvoll wäre, vorab den freien Speicherplatz zu prüfen. Grundlegend gibt es dafür die beiden API-Funktionen GetDiskFreeSpace und GetDiskFreeSpaceEx. Ich habe mich für den hier vorliegenden code mit der Funktion GetDiskFreeSpaceEx entschieden, da das Ergebnis mit der Anzeige der Eigenschaften des Laufwerks im Explorer auf meinem Testsystem (W7-32, 250 GB HD) übereinstimmt. Entsprechend der Fragestellung habe ich die Ausgabe auf den freien Speicherplatz beschränkt. Die Funktion GetDiskFreeSpaceEx liefert noch zwei weitere Werte. Die Ausgabe erfolgt hier in Bytes, die man natürlich auch in MB oder GB umrechnen kann. Nähere Informationen zur Funktion und zum verwendeten Type URGEND_INTEGER finden sich bei Microsft, siehe auch die Links im einleitenden Teil zu den API.

Zum Beispielcode:FreeDiskSpace