Den freien Speicherplatz einer Festplatte zu ermitteln, ist gar nicht so leicht. Erst ab Visual-Basic 6 lässt sich dies ohne Windows-API bewerkstelligen. Wir zeigen Ihnen hier, wie Sie den freien Festplatten-Speicher sowohl unter VB4/5, als auch unter VB6 ermitteln können. Public Function GetDiskSpaceFree(ByVal Drive As String) _ As Double Dim FSO As Object Dim Drv As Object Dim SpaceFree As Double SpaceFree = -1 Drive = UCase$(Left$(Drive, 1)) Set FSO = CreateObject("Scripting.FileSystemObject") For Each Drv In FSO.Drives If Drv.DriveLetter = Drive Then On Local Error Resume Next SpaceFree = Drv.AvailableSpace If Err<>0 Then SpaceFree = -1 On Local Error Goto 0 Exit For End If Next GetDiskSpaceFree = SpaceFree End Function Ermitteln des freien Festplattenspeichers mit Hilfe der Windows-API (VB4/VB5) ' zunächst die benötigten Deklarationen Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" _ Alias "GetDiskFreeSpaceExA" ( _ ByVal lpDirectoryName As String, _ lpFreeBytesAvailableToCaller As Currency, _ lpTotalNumberOfBytes As Currency, _ lpTotalNumberOfFreeBytes As Currency) As Long Public Function GetDiskSpaceFree(ByVal Drive As String) _ As Double Dim FreeBytesAvail As Currency Dim TotalSpace As Currency Dim AvailSpace As Currency Dim sTmp As String If Len(Drive) = 1 Then Drive = Drive + ":\" If GetDiskFreeSpaceEx(Drive, FreeBytesAvail, _ TotalSpace, AvailSpace) = 0 Then AvailSpace = -1 sTmp = CStr(AvailSpace) If InStr(sTmp, ",") > 0 Then _ sTmp = Left$(sTmp, InStr(sTmp, ",") - 1) + _ Mid$(sTmp, InStr(sTmp, ",") + 1) GetDiskSpaceFree = CDbl(sTmp) End Function Hinweis: ' Freier Speicher Laufwerk C: Dim SpaceFree As Double SpaceFree = GetDiskSpaceFree("C") If SpaceFree < 0 Then MsgBox "Fehler... Evtl. Laufwerk nicht bereit!" Else MsgBox Format$(SpaceFree, "###,###,###,###") + _ " Bytes frei" End If |