RSS
StartseiteKnowledge LibraryTop 10Impressum

7.2 Wie kann ich feststellen, ob eine Datei bereits geöffnet ist?

VB4-VB6

Von:  [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.