vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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 - Ein- und Umsteiger
Re: Festplatte durchsuchen 
Autor: Maywood
Datum: 18.02.05 21:17

So, hier das versprochene Beispiel.

Klasse "SearchFile":
Public Class SearchFile
    Inherits Object
    Private m_FileName As String
    Private m_Log As Boolean
    Private m_Drives() As String
    Private m_sw As IO.StreamWriter
    Private m_Abort As Boolean
    Public Event CurrentFile(ByVal FileName As String, ByVal IsEqual As Boolean)
 
    Public Sub Abort()
        Me.m_Abort = True
    End Sub
 
    Public Sub New(ByVal FileName As String, ByVal Drives() As String, ByVal _
      Log As Boolean)
        MyBase.New()
        Me.m_FileName = FileName
        Me.m_Log = Log
        Me.m_Drives = Drives
    End Sub
 
    Public Sub Search()
        Try
            Me.m_Abort = False
            If Me.m_Log Then m_sw = New IO.StreamWriter("log.txt", False)
            For Each d As String In Me.m_Drives
                Me.Search(d)
                If Me.m_Abort Then Return
            Next
        Finally
            If Not m_sw Is Nothing Then
                m_sw.Close()
            End If
        End Try
    End Sub
 
    Private Sub Log(ByVal CurrentFile As String)
        If Not Me.m_Log Then Return
        m_sw.WriteLine(CurrentFile)
    End Sub
 
    Private Sub IsEqual(ByVal CurrentItem As String)
        RaiseEvent CurrentFile(CurrentItem, Me.m_FileName.ToUpper.Equals( _
          IO.Path.GetFileName(CurrentItem).ToUpper))
    End Sub
 
    Private Sub SearchFile(ByVal Dir As String)
        For Each f As String In IO.Directory.GetFiles(Dir)
            Me.Log(f)
            Me.IsEqual(f)
            If Me.m_Abort Then Return
        Next
    End Sub
 
    Private Sub Search(ByVal Dir As String)
        Try
            SearchFile(Dir)
            For Each d As String In IO.Directory.GetDirectories(Dir)
                Try
                    If Me.m_Abort Then Return
                    Search(d)
                Catch ex As Exception
                    Debug.WriteLine(ex.Message)
                End Try
            Next
        Catch ex As Exception
            Debug.WriteLine(ex.Message)
        End Try
    End Sub
End Class
Anwendung in einer Form:
    Dim f As SearchFile
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        '// durchsucht alle logischen LW nach der Datei "app.config":
        f = New SearchFile("app.config", System.Environment.GetLogicalDrives, _
          True)
        AddHandler f.CurrentFile, AddressOf CurrentFile
        f.Search()
    End Sub
 
    Private Sub CurrentFile(ByVal FileName As String, ByVal IsEqual As Boolean)
        If IsEqual Then
            Me.ListBox1.Items.Add("Found: " + FileName)
            Application.DoEvents()
            '// MessageBox.Show("Found: " + FileName)
            '// f.Abort() '
        End If
    End Sub
Denke, das Bsp. ist (fast) selbsterklärend
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Festplatte durchsuchen2.012ap!15.02.05 20:42
Re: Festplatte durchsuchen1.354Maywood15.02.05 21:54
Re: Festplatte durchsuchen1.425ap!16.02.05 06:45
Re: Festplatte durchsuchen1.484Maywood16.02.05 11:36
Re: Festplatte durchsuchen1.367ap!16.02.05 14:50
Re: Festplatte durchsuchen1.448Maywood17.02.05 00:54
Re: Festplatte durchsuchen1.210ap!17.02.05 13:57
Re: Festplatte durchsuchen1.555Maywood18.02.05 21:17
Re: Festplatte durchsuchen1.256ap!18.02.05 21:21

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