VB-Homepage Tipp 091

freien Speicherplatz auf einem Datenträger ermitteln

Wer nur mal für eine Installation den freien Speicherplatz ermitteln möchte, der ist sicher besser beraten, dies über eine API-Funktion zu ermitteln. Ansonsten würde ich allen, die mit VB3 arbeiten, die vbio.vbx empfehlen (VB-Know/VBXen), denn mit der läßt sich noch viel mehr zum Datenträger ermitteln.

Hier aber soll eine API-Funktion betrachtet werden, mit der sich der freie Speicherplatz von Datenträgers ermitteln läßt. (Im Beispiel alle angeschlossenen Datenträger)


General/Declarations
Declare Function DiskSpaceFree Lib "SETUPKIT.DLL" () As Long

General/GetFreeDiskSpace
Function GetFreeDiskSpace& (Drive$)

On Error GoTo FreeErrorHandler

Dim TempDrive$, X&, A$

TempDrive$ = Left$(CurDir$, 2)
ChDrive Drive$

A$ = Dir$(Drive$ + "\*.*")
X& = DiskSpaceFree&()

ChDrive TempDrive$
GetFreeDiskSpace& = X&
Exit Function

FreeErrorHandler:
GetFreeDiskSpace& = -Err
On Error GoTo 0
ChDrive TempDrive$
Err = 0
Exit Function

End Function


Fügen Sie einen Commandbutton (Command1) und eine Listbox (List1) auf Ihre Form ein und vergeben dem Commandbutton den Auftrag zum ermitteln des freien Datenträgerspeichers.

Command1/Click

For I% = Asc("A") To Asc("Z")
   Drive$ = Chr$(I%) + ":"
   X& = GetFreeDiskSpace&(Drive$)

   'Rückgabewert -71 = keine Disk im Laufwerk
   'Rückgabewert -68 = Laufwerk nicht verfügbar
   If X& < 0 Then 'wenn irgendein Fehler auftritt
      'List1.AddItem Drives$ & Error$(Abs(X&))
   End If

   If X& = 0 Then 'zBsp bei CD's wo Speicherplatz gleich 0 ist
      List1.AddItem Chr$(I%) & ": " & Format$(X&, "000") + " bytes [CD-ROM]"
   End If

   If X& > 0 Then 'Hier ist ein Laufwerk mit Speicherplatz
      List1.AddItem Chr$(I%) & ": " & Format$(X&, "###,###,###") + " bytes"
   End If

Next I%


Tipp-Download

Quelle : Cobbs / Inside VB

Zurück zur Übersichtsseite