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%
|