Rubrik: Dateisystem · Laufwerke | VB-Versionen: VB4, VB5, VB6 | 04.11.04 |
Freier Speicherplatz eines Laufwerks (WMI) Dieser Tipp zeigt, wie sich sowohl der freie Speicherplatz oder auch die Gesamtgröße eines Datenträgers ermitteln lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 15.463 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Möchten Sie wissen, wieviel freier Speicherplatz noch auf einem Datenträger zur Verfügung steht?
Oder benötigen Sie Infos, welche Kapazität der Datenträger insgesamt hat?
Dann können Sie entweder auf das Windows-API zurückgreifen, oder alternativ auch das WMI-Objekt verwenden:
Option Explicit ' Konstanten (Aufzählung) Public Enum eSpaceType DRIVE_FREESPACE = 1 DRIVE_TOTALSIZE = 2 End Enum
' Freien Speicherplatz/Gesamtgröße eines Laufwerks ermitteln Public Function GetDriveSpace(ByVal sDrive As String, _ Optional ByVal nSpaceType As eSpaceType = DRIVE_FREESPACE) As Currency Dim oWMI As Object Dim oDrives As Object Dim sSQL As String Dim oDrive As Object sSQL = "SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '" & sDrive & "'" Set oWMI = GetObject("winmgmts:") Set oDrives = oWMI.ExecQuery(sSQL) If Not oDrives Is Nothing Then If oDrives.Count > 0 Then For Each oDrive In oDrives If nSpaceType = DRIVE_FREESPACE Then ' freien Speicherplatz zurückgeben GetDriveSpace = oDrive.FreeSpace Else ' Gesamtgröße des Datenträgers zurückgeben GetDriveSpace = oDrive.Size End If Exit For Next End If End If Set oDrives = Nothing Set oWMI = Nothing End Function
Aufrufbeispiel:
Der freie Speicherplatz von Laufwerk C: soll in der Größeneinheit "MByte" ermittelt und angezeigt werden.
Dim nSize As Currency nSize = GetDriveSpace("c:") lblFreeSpace.Caption = Format$((nSize / 1024 / 1024), "#0.00") & " MByte"
In einem weiteren Label-Control soll jetzt noch die Gesamtgröße von Laufwerk c: - ebenfalls in MByte - angezeigt werden.
nSize = GetDriveSpace("c:", DRIVE_TOTALSIZE) lblTotalSize.Caption = Format$((nSize / 1024 / 1024), "#0.00") & " MByte"