Rubrik: Dateisystem · Laufwerke | VB-Versionen: VB5, VB6 | 06.01.04 |
Diskette eingelegt/schreibgeschützt? Überprüft ob eine Diskette eingelegt und schreibgeschützt ist. | ||
Autor: Richard Reiffinger | Bewertung: | Views: 12.346 |
www.richistudios.com | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Manchmal ist es nötig nicht nur zu wissen, ob eine Diskette eingelegt ist, sondern auch, ob diese schreibgeschützt ist. Dies lässt sich ganz einfach mit dem folgenden Code ermitteln:
' Prüft, ob eine Diskette in Laufwerk A: eingelegt ist ' (bRW prüft, ob die Diskette auch schreibgeschützt ist) Public Function DiskExists(Optional ByVal bRW As Boolean = False) As Boolean Dim sOldDir As String Dim sDummyFile Dim F As Integer Dim bFileExists As Boolean ' Fehlerbehandlung aktivieren On Error Resume Next ' Setze Err-Objekt zurück Err.Clear If bRW Then ' Prüfe ob eine schreibbare Diskette im ' Laufwerk liegt sDummyFile = "A:\00000000.tmp" ' Prüfe ob die Datei bereits existiert bFileExists = (Dir$(sDummyFile) <> "") ' Versuch eine Datei zum "Anfügen" zu öffnen F = FreeFile Open sDummyFile For Append As #F Close #F ' Wenn kein Fehler auftrat, liegt eine Diskette ' ohne Schreibschutz im Laufwerk DiskExists = (Err = 0) ' Ggf. Datei wieder löschen If Not bFileExists Then Kill sDummyFile Else ' aktuelles Laufwerk merken sOldDir = CurDir ' Versuch ins Root-Verzeichnis von Laufwerk A: ' zu wechseln ChDir "A:\" ' Wenn kein Fehler auftrat, liegt eine Diskette ' im Laufwerk DiskExists = (Err = 0) ' wieder ins ursprüngliche Verzeichnis wechseln ChDir sOldDir End If ' Fehlerbehandlung wieder ausschalten On Error Goto 0 End Function
Mit Hilfe des Parameters bRW kann man angeben, ob nur nach einer Diskette gesucht wird (FALSE) oder ob geprüft werden soll, ob auf die Diskette geschrieben werden kann (TRUE).