vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Datei suchen ohne Access Denied 
Autor: Manfred X
Datum: 16.04.15 16:45

Eventuell in einer Klasse kapseln ...
Imports System.ComponentModel
 
Public Class FindFiles
 
    Dim WithEvents bg As New BackgroundWorker _
        With {.WorkerReportsProgress = True, _
              .WorkerSupportsCancellation = True}
 
    Public Property FilePattern As String = ""
 
    Public Property BaseDirectory As String = ""
 
    Private _FileList As New List(Of String)
 
 
    Public Class FindFilesEventArgs
        Inherits System.EventArgs
 
        Dim _ra As ReportArgs
        Public Sub New(report As ReportArgs)
            _ra = report
        End Sub
 
        Public Function FilesFound() As Integer
            Return _ra.FilesFound
        End Function
    End Class
 
 
    Public Event Finished(ByVal sender As Object, ByVal e As FindFilesEventArgs)
    Public Event Progress(ByVal sender As Object, ByVal e As FindFilesEventArgs)
    Public Event Aborted(ByVal sender As Object, ByVal e As EventArgs)
 
 
    Public Structure ReportArgs
        Friend FilesFound As Integer
        Friend abort As Boolean
    End Structure
 
    Dim _reportargs As New ReportArgs
 
 
    Public Function Find() As Boolean
 
        If Not IO.Directory.Exists(BaseDirectory) Then Return False
 
        _FileList.Clear()
        _reportargs.FilesFound = 0
        _reportargs.abort = False
 
        bg.RunWorkerAsync()
        Return True
    End Function
 
 
    Private Sub bg_DoWork(sender As Object, _
        e As System.ComponentModel.DoWorkEventArgs) Handles bg.DoWork
 
        FindFiles(BaseDirectory)
    End Sub
 
 
    Private Sub FindFiles(ByVal folder As String)
        Try
            If bg.CancellationPending Then Exit Sub
 
            For Each file As String In _
                IO.Directory.EnumerateFiles(folder, FilePattern)
                With _reportargs
                    .FilesFound += 1
                    _FileList.Add(file)
                    bg.ReportProgress(0, _reportargs)
                End With
            Next file
 
            For Each fld As String In IO.Directory.GetDirectories(folder)
                FindFiles(fld)
            Next fld
        Catch ex As UnauthorizedAccessException
        End Try
 
    End Sub
 
 
    Public Sub Abort()
        _reportargs.abort = True
        If bg.IsBusy Then bg.CancelAsync()
    End Sub
 
 
    Private Sub bg_ProgressChanged(sender As Object, _
            e As System.ComponentModel.ProgressChangedEventArgs) Handles _
            bg.ProgressChanged
        RaiseEvent Progress(Me, New FindFilesEventArgs(_reportargs))
    End Sub
 
 
    Private Sub bg_RunWorkerCompleted(sender As Object, _
        e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles _
        bg.RunWorkerCompleted
        If _reportargs.abort Then
            RaiseEvent Aborted(Me, EventArgs.Empty)
        Else
            RaiseEvent Finished(Me, New FindFilesEventArgs(_reportargs))
        End If
    End Sub
 
 
    Public ReadOnly Property FilesFound As List(Of String)
        Get
            Return _FileList
        End Get
    End Property
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei suchen ohne Access Denied2.245henrikl200015.04.15 12:56
Re: Datei suchen ohne Access Denied1.585Manfred X15.04.15 13:07
Re: Datei suchen ohne Access Denied1.614henrikl200016.04.15 13:36
Re: Datei suchen ohne Access Denied1.625Manfred X16.04.15 16:45
Re: Datei suchen ohne Access Denied1.519henrikl200017.04.15 08:22
Formular zur Verwendung der FindFiles-Klasse1.611Manfred X17.04.15 09:42
Re: Datei suchen ohne Access Denied1.523henrikl200017.04.15 10:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel