Hi,
ich benutze folgenden Code um zu Prüfen, ob eine Datei geöffnet werden kann oder nicht:
zu 99% funktioniert das auch, manchmal führt es aber zum Absturz trotz der Try...catch
Diese Variante habe ich auch probiert:
Gleiches Ergebnis.
Der Fehler lautet: "Datei in Benutzung..." und wird nicht gefangen.
Gibt es hier Alternativen um vorab sicher zu prüfen, ob eine Datei nicht von einer anderen App benutzt wird ?
Oder habe ich einen Fehler in dem Code? Ich probiere ansonsten die Try..catch so gut wie nie zu benutzen...
Vielen Dank vorab für Eure Hilfe.
ich benutze folgenden Code um zu Prüfen, ob eine Datei geöffnet werden kann oder nicht:
VB.NET-Quellcode
- Public Function FileInUse(ByVal sFile As String) As Boolean
- If System.IO.File.Exists(sFile) Then
- Try
- Dim F As Short = CShort(FreeFile())
- FileOpen(F, sFile, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
- FileClose(F)
- Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
- Return True
- End Try
- End If
- Return False
- End Function
zu 99% funktioniert das auch, manchmal führt es aber zum Absturz trotz der Try...catch
Diese Variante habe ich auch probiert:
VB.NET-Quellcode
- Public Function FileInUse(ByVal sfile As String) As Boolean
- If System.IO.File.Exists(sfile) Then
- Dim stream As IO.FileStream = Nothing
- Dim File = New FileInfo(sfile)
- Try
- stream = File.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None)
- stream.Close()
- Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
- Return True
- End Try
- End If
- Return False
- End Function
Gleiches Ergebnis.
Der Fehler lautet: "Datei in Benutzung..." und wird nicht gefangen.
Gibt es hier Alternativen um vorab sicher zu prüfen, ob eine Datei nicht von einer anderen App benutzt wird ?
Oder habe ich einen Fehler in dem Code? Ich probiere ansonsten die Try..catch so gut wie nie zu benutzen...
Vielen Dank vorab für Eure Hilfe.