Feedback

VB - Prüfen, ob eine Datei überschrieben werden kann

Veröffentlicht von am 17.11.2011
(0 Bewertungen)
Mit diesem Snippet kann für eine beliebige Datei überprüft werden, ob diese z.B. durch eine neue Version ersetzt werden kann. Spezielle Anwendung wäre z.B. das Prüfen einer DLL-Datei. Wird diese gerade durch ein Programm benutzt, so liefert diese Funktion entsprechend ein True.
Public Function WirdDieDateiVerwendet(ByVal vollerPfad As String) As Boolean
        Dim freieDatei As Integer = FreeFile()
        Dim dateiWirdVerwendet As Boolean
        dateiWirdVerwendet = False
        '>>> Prüfen, ob die Datei existiert
        If System.IO.File.Exists(vollerPfad) Then
            Try
                '>>> Versuch, die Datei mit exklusiven Lese- und Schreibrechten zu öffnen
                FileOpen(freieDatei, vollerPfad, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
            Catch
                '>>> Tritt ein Fehler auf, so wird die Datei gerade verwendet (oder aber es liegt ein Rechteproblem oder ähnliches vor)
                dateiWirdVerwendet = True
            Finally
                '>>> Schließen der ggf. geöffneten Datei
                FileClose(freieDatei)
            End Try
        End If
        Return dateiWirdVerwendet
    End Function

1 Kommentare zum Snippet

Fawk_18 schrieb am 22.11.2011:
Durch den Try-Catch wird diese prüfung seeeeehr langsam!!! Deshalb nimmt man FileInfo der eine Methode namens: GetAccessControl hat. Diese gibt dir ein FileSecurity object auf den du prüfen kannst (mehrere Security eigenschaften). Und immer daran denken: Try-Catch für ExceptionHandling/Logging und WorstCase Szenario verwenden. ABER nicht für prüfungen verwenden!!!
 

Logge dich ein, um hier zu kommentieren!