VB4-VB6
Von: Tobias Schikora [Home]
Es gibt keine universelle und eindeutige Möglichkeit herauszufinden, ob eine Datei bereits vom Betriebssystem oder anderen Programmen geöffnet ist. Eine leider etwas unsaubere Möglichkeit besteht aber dennoch. Öffnen Sie dazu die zu überprüfende Datei mit dem Open- Befehl und werten Sie die Eigenschaft "Number" des Err- Objektes aus. Hier ein Ansatz:
Private Sub Command1_Click() Dim Datei As String Dim ff As Integer Datei = "c:\textdatei.doc" ff = FreeFile() On Error Resume Next Open Datei For Binary Lock Read Write As #ff Select Case Err.Number Case 0 ' Kein Fehler MsgBox "Die Datei ist noch nicht exklusiv geöffnet.", _ vbInformation, "Dateizugriff" Case 55, 70 ' 55 - "Datei bereits geöffnet" _ 70 - "Zugriff verweigert" MsgBox "Die Datei ist bereits exklusiv geöffnet.", _ vbInformation, "Dateizugriffsfehler" Case Else ' Anderer Fehler MsgBox CStr(Err.Number) & " - " & Err.Description, _ vbInformation, "Unerwarteter Fehler" End Select Close #ff End Sub
Dieses Vorgehen hat leider einen weiteren Haken, denn es funktioniert nur zuverlässig, wenn die angegebene Datei exklusiv geöffnet wurde, wie zum Beispiel beim Öffnen der Datei in Word. Wird eine Datei z.B. in Notepad geöffnet, lässt sich nicht feststellen, ob die Datei bereits geöffnet ist.