VB.NET – prüfen ob eine Datei bereits geöffnet ist
Bei der Erstellung einer Anwendung, welche externe Dateien lesen oder schreiben soll, kann es zu Konflikten beim Zugriff kommen. Eventuell wird eine Logdatei, welche man lesen möchte noch von einer anderen Anwendung benutzt. Man erhält einer Fehlermeldung das ein Zugriff nicht möglich ist. Um nun zu prüfen ob die gewünschte Datei sich öffnen lässt, benutze ich folgende Funktion:
Public Function check_file_use(sub_filename as string) as Boolean
Funktion erstellen, Übergabe der zu prüfenden Datei, Rückgabe als Boolean
Dim fs As Integer = FreeFile()
freie Vergabe von einer Dateinummer
If file.Exists(sub_filename) Then
prüfen ob die Datei existiert
Try
FileOpen(fs, sub_filename, OpenMode.Binary , OpenAccess.ReadWrite, OpenShare.LockReadWrite)
versuchen die Datei zuöffnen
Catch
check_file_use = true
True wenn die Datei nicht geöffnet werden kann
Finally
FileClose(fs)
Datei schließen
End if
End Function
Hier die gesamte Funktion:
Public Function func_check_file_use(sub_filename) As Boolean
Dim fs As Integer = FreeFile()
If file.Exists(sub_filename) Then
Try
FileOpen(fs, sub_filename, OpenMode.Binary , _
OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch
func_check_file_use = true
Finally
FileClose(fs)
End Try
End If
End Function