Rubrik: Dateisystem · Laufwerke | VB-Versionen: VB4, VB5, VB6 | 16.11.00 |
Formatieren eines Datenträgers Einen Datenträger vollständig zu löschen - könnte man meinen - ist gar keine so große Angelegenheit. Dies trifft jedoch nur dann zu, wenn keine groß... | ||
Autor: Dieter Otter | Bewertung: | Views: 25.447 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Einen Datenträger vollständig zu löschen - könnte man meinen - ist gar keine so große Angelegenheit. Dies trifft jedoch nur dann zu, wenn keine großartigen Ordnerstrukturieren auf dem Datenträger vorhanden sind. Eine Alternative zum einzelnen Löschen aller Dateien ist das Formatieren des gesamten Datenträgers. Hierzu stellt das Windows-API eine eigene Funktion zur Verfügung. Einiziger Nachteil dieser Methode ist, daß der Windows-Standard-Dialog für das Formatieren des Datenträgers eingeblendet wird.
' Hier die benötigte Windows-API-Funktion Public Declare Function SHFormatDrive Lib "shell32" ( _ ByVal hwndOwner As Long, _ ByVal lngDrive As Long, _ ByVal lngCapacity As Long, _ ByVal lngFormatType As Long) As Long
Mit Hilfe nachfolgender Konstanten können bestimmte Formatierungs-Einstellung vorgegeben werden.
' Konstanten Const SHFD_CAPACITY_DEFAULT = 0 ' Standard Const SHFD_CAPACITY_360 = 3 ' 360 kB Const SHFD_CAPACITY_720 = 5 ' 720 kB Const SHFD_FORMAT_QUICK = 0 ' Quickformat Const SHFD_FORMAT_FULL = 1 ' Vollständig Const SHFD_FORMAT_SYSONLY = 2 ' Systemdateien kopieren Dim Drive As Long Dim Result As Long ' 0=A: / 1=B: / 2=C: / usw. Drive = 0 Result = SHFormatDrive(Me.hWnd, Drive, _ SHFD_CAPACITY_DEFAULT, SHFD_FORMAT_QUICK) ' Rückgabewert auswerten If Result = -1 Then ' Fehler beim Formatieren ElseIf Result = -2 Then ' Benutzerabbruch Else ' Formatierung OK End If
Anmerkung:
Konstanten-Deklaration unter Windows NT/2000:
Const SHFD_FORMAT_QUICK = 1 ' Quickformat Const SHFD_FORMAT_FULL = 0 ' Vollständig